当前位置: 首页 > news >正文

Python流程控制

目录

第一章:条件控制语句(if)

第二章:循环结构

第三章:循环控制

第四章:实战技巧

第五章:调试与优化

第六章:综合练习


第一章:条件控制语句(if

1.1 基本语法结构

# 基本格式(注意冒号和4空格缩进)

age = 18

if age >= 18:

    print("已成年")

else:

    print("未成年")

# 三目运算符简化版

status = "成年" if age >= 18 else "未成年"

1.2 条件表达式详解

运算符

说明

示例

==

等于

5 == 3 → False

!=

不等于

5 != 3 → True

>

大于

5 > 3 → True

<

小于

5 < 3 → False

>=

大于等于

5 >= 5 → True

<=

小于等于

5 <= 3 → False

# 复合条件判断示例

score = 85

if (score >= 80) and (score < 90):  # 使用括号明确优先级

    print("B等级")

1.3 多重条件判断

# 成绩评级系统

score = 78

if score >= 90:

    print("A")

elif 80 <= score < 90:  # 注意判断顺序

    print("B")

elif 70 <= score < 80:

    print("C")

else:

    print("D")

1.4 典型错误案例

# 错误1:遗漏冒号

if score >= 60  # SyntaxError: expected ':'

# 错误2:缩进不一致

if score >= 90:

    print("优秀")  # 4空格

     print("奖励")  # 5空格→IndentationError

# 错误3:条件顺序错误

if score >= 60:

    print("合格")

elif score >= 90:  # 永远不会执行

    print("优秀")


第二章:循环结构

2.1 while循环

# 基础计数器

count = 0

while count < 5:

    print(f"当前次数: {count}")

    count += 1

# 带异常处理

while True:

    try:

        num = int(input("输入数字: "))

        break

    except ValueError:

        print("输入错误,请重试!")

2.2 for循环

# 遍历字符串

word = "Hello"

for char in word:

    print(char)  # 逐字符输出 H e l l o

# 遍历字典

grades = {"数学":90, "语文":85}

for subject, score in grades.items():

    print(f"{subject}: {score}")

2.3 range函数应用

# 生成数字序列

for i in range(3):         # 0,1,2

for i in range(1, 5):      # 1,2,3,4

for i in range(0, 10, 2):  # 0,2,4,6,8


第三章:循环控制

3.1 breakcontinue

# 密码验证系统

max_attempts = 3

attempts = 0

while attempts < max_attempts:

    pwd = input("输入密码: ")

    if pwd == "123456":

        print("登录成功!")

        break

    attempts += 1

else:

    print("账户已锁定")

# 跳过奇数

for num in range(10):

    if num % 2 != 0:

        continue

    print(num)  # 0,2,4,6,8

3.2 循环嵌套

# 九九乘法表

for i in range(1, 10):

    for j in range(1, i+1):

        print(f"{j}x{i}={i*j}", end="\t")

    print()


第四章:实战技巧

4.1 字符串格式化

# 三种格式化方法

name = "Alice"

print("欢迎 %s" % name)              # 传统方法

print("欢迎 {}".format(name))        # format方法

print(f"欢迎 {name}")                # f-string(推荐)

4.2 列表推导式

# 生成平方数列表

squares = [x**2 for x in range(10)]

# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 带条件筛选

even_squares = [x**2 for x in range(10) if x % 2 == 0]

# [0, 4, 16, 36, 64]


第五章:调试与优化

5.1 常见错误排查

# 错误:修改迭代中的列表

nums = [1,2,3,4,5]

for num in nums:

    if num % 2 == 0:

        nums.remove(num)  # 错误方式

# 正确:遍历副本

for num in nums.copy():

    if num % 2 == 0:

        nums.remove(num)

5.2 性能优化

# 低效写法

result = []

for i in range(1000000):

    result.append(i*2)

# 高效写法

result = [i*2 for i in range(1000000)]


第六章:综合练习

6.1 成绩管理系统

students = {}

while True:

    name = input("输入学生姓名(q退出): ")

    if name == 'q':

        break

   

    scores = []

    for subject in ["数学", "语文", "英语"]:

        while True:

            try:

                score = int(input(f"{subject}成绩: "))

                if 0 <= score <= 100:

                    scores.append(score)

                    break

                else:

                    print("成绩需在0-100之间")

            except ValueError:

                print("请输入数字!")

   

    students[name] = sum(scores)/len(scores)

for name, avg in students.items():

    print(f"{name}的平均分:{avg:.1f}")

相关文章:

  • FANUC机器人GI与GO位置数据传输设置
  • 初识Redis · 事务
  • 项目组合管理PPM
  • 5.4.云原生与服务网格
  • uniapp返回上一页接口数据更新了,页面未更新
  • Lua 第9部分 闭包
  • 官方不存在tomcat10-maven-plugin插件
  • Linux内核源码结构
  • ApacheJmeter使用权威指南
  • Maven 工程中的pom.xml 文件(图文)
  • Python3(6) 运算符
  • 【解读】Chrome 浏览器实验性功能全景
  • Windows:注册表配置应用
  • STM32F103 “BluePill” 上的 DMA 原理与实践
  • Javase 基础入门 —— 03 面向对象编程
  • 欧拉环境(openEuler 22.03 LTS SP3)安装移动磐维数据库(PanWeiDB_V2.0-S2.0.2_B01)步骤
  • 【漫话机器学习系列】219.支持向量机分类器(Support Vector Classifier)
  • 【异常解决】Spring Boot 返回排序后的 Map 但前端接收顺序不对的解决方案
  • Django 实现电影推荐系统:从搭建到功能完善(附源码)
  • Django DRF实现用户数据权限控制
  • 最高法:家长以监督为名虚构事实诋毁学校的,应承担侵权责任
  • 新增1839个!2024年度本科专业备案和审批结果,公布
  • 艺术家会怎么造机器人?
  • 美团回应京东“二选一”指控:没有任何理由对某平台进行任何限制
  • 上海虹桥机场口岸单日出入境突破1.1万人次,创今年新高
  • 史蒂夫·麦奎因透露罹患前列腺癌,呼吁同胞莫受困于男性气概