
1. Python3条件语句详解1.1 if语句基础语法Python中的条件判断主要通过if语句实现其基本语法结构如下if 条件表达式: # 条件为True时执行的代码块这里的条件表达式可以是任何返回布尔值的表达式。当表达式结果为True时执行缩进的代码块否则跳过。例如age 18 if age 18: print(您已成年可以进入)注意Python使用缩进通常是4个空格来标识代码块这是Python语法的重要特征不同于其他语言使用大括号的方式。1.2 if-else语句当需要处理条件不成立的情况时可以使用if-else结构if 条件表达式: # 条件为True时执行 else: # 条件为False时执行实际应用示例score 85 if score 60: print(考试及格) else: print(考试不及格)1.3 if-elif-else多重判断对于多个条件判断可以使用if-elif-else结构if 条件1: # 条件1为True时执行 elif 条件2: # 条件2为True时执行 else: # 以上条件都不满足时执行这种结构会按顺序检查每个条件一旦某个条件满足就执行对应的代码块并跳过其余判断。例如temperature 25 if temperature 30: print(天气炎热) elif temperature 20: print(天气温暖) elif temperature 10: print(天气凉爽) else: print(天气寒冷)1.4 条件表达式的深入理解Python的条件表达式非常灵活可以包含比较运算符,!,,,,逻辑运算符and,or,not成员运算符in,not in身份运算符is,is not复杂条件示例age 25 height 175 if (18 age 35) and (height 170 or height 160): print(符合特殊岗位要求)1.5 条件语句的嵌套条件语句可以多层嵌套但为了代码可读性一般不建议超过3层num 15 if num % 2 0: if num % 3 0: print(能被2和3整除) else: print(能被2整除但不能被3整除) else: if num % 3 0: print(不能被2整除但能被3整除) else: print(既不能被2也不能被3整除)2. Python3循环语句全面解析2.1 while循环详解while循环在条件为True时重复执行代码块while 条件表达式: # 循环体基础示例count 0 while count 5: print(f当前计数: {count}) count 12.1.1 无限循环与中断有时我们需要创建无限循环然后通过条件中断while True: user_input input(请输入命令(q退出): ) if user_input q: break print(f执行命令: {user_input})提示在开发环境中可以使用CtrlC强制终止无限循环。2.1.2 while-else结构while循环也可以有else子句当循环正常结束非break中断时执行n 5 while n 0: print(n) n - 1 else: print(循环正常结束)2.2 for循环深入探讨for循环用于遍历序列如列表、字符串等或其他可迭代对象for 变量 in 可迭代对象: # 循环体2.2.1 基础遍历示例fruits [apple, banana, orange] for fruit in fruits: print(f我喜欢吃{fruit})2.2.2 range()函数的使用range()生成整数序列常用于控制循环次数for i in range(5): # 0到4 print(i) for i in range(2, 6): # 2到5 print(i) for i in range(0, 10, 2): # 0到9步长2 print(i)2.2.3 enumerate()获取索引需要同时获取索引和值时可以使用enumerate()fruits [apple, banana, orange] for index, fruit in enumerate(fruits): print(f索引{index}处的水果是{fruit})2.2.4 for-else结构与while类似for循环也可以有else子句for i in range(5): print(i) else: print(循环完整执行完毕)2.3 循环控制语句2.3.1 break语句break用于立即退出当前循环for num in range(10): if num 5: break print(num) # 只打印0-42.3.2 continue语句continue跳过当前迭代进入下一次循环for num in range(10): if num % 2 0: continue print(num) # 只打印奇数2.3.3 pass语句pass是空操作语句用于语法上需要语句但实际不需要操作的情况for num in range(5): if num 3: pass # 什么都不做 print(num)3. 循环嵌套与高级应用3.1 循环嵌套原理循环可以多层嵌套但要注意控制嵌套深度一般不超过3层for i in range(3): for j in range(3): print(fi{i}, j{j})3.2 经典案例九九乘法表for i in range(1, 10): for j in range(1, i1): print(f{j}x{i}{i*j}, end\t) print() # 换行3.3 列表推导式中的循环列表推导式可以简洁地创建列表# 生成平方数列表 squares [x**2 for x in range(10)] # 带条件的列表推导式 even_squares [x**2 for x in range(10) if x % 2 0]3.4 循环优化技巧尽量减少循环内部的计算# 不推荐 for i in range(len(data)): result complex_calculation(data[i]) # 推荐 calculation_cache [complex_calculation(x) for x in data] for i in range(len(data)): result calculation_cache[i]使用zip()并行遍历多个序列names [Alice, Bob, Charlie] ages [25, 30, 35] for name, age in zip(names, ages): print(f{name} is {age} years old)4. 条件与循环的综合应用4.1 质数判断程序num 17 if num 1: for i in range(2, int(num**0.5)1): if num % i 0: print(f{num}不是质数) break else: print(f{num}是质数) else: print(f{num}不是质数)4.2 猜数字游戏import random target random.randint(1, 100) attempts 0 while True: guess int(input(猜一个1-100的数字: )) attempts 1 if guess target: print(猜小了) elif guess target: print(猜大了) else: print(f恭喜你用了{attempts}次猜对了) break4.3 冒泡排序算法def bubble_sort(arr): n len(arr) for i in range(n-1): for j in range(n-i-1): if arr[j] arr[j1]: arr[j], arr[j1] arr[j1], arr[j] return arr numbers [64, 34, 25, 12, 22, 11, 90] print(排序前:, numbers) print(排序后:, bubble_sort(numbers.copy()))4.4 选择排序算法def selection_sort(arr): for i in range(len(arr)): min_idx i for j in range(i1, len(arr)): if arr[j] arr[min_idx]: min_idx j arr[i], arr[min_idx] arr[min_idx], arr[i] return arr numbers [64, 34, 25, 12, 22, 11, 90] print(排序前:, numbers) print(排序后:, selection_sort(numbers.copy()))5. 常见问题与调试技巧5.1 条件语句常见错误误用赋值运算符代替比较运算符# 错误写法 if x 5: # 会报语法错误 print(x等于5) # 正确写法 if x 5: print(x等于5)忘记冒号:# 错误写法 if x 0 # 缺少冒号 print(x是正数)5.2 循环语句常见问题无限循环# 错误示例 - 忘记更新循环变量 count 0 while count 5: print(count) # 缺少 count 1修改正在遍历的列表# 危险操作 numbers [1, 2, 3, 4] for num in numbers: if num % 2 0: numbers.remove(num) # 会跳过某些元素5.3 调试技巧使用print调试for i in range(5): print(f循环开始i{i}) # 调试输出 # 其他代码 print(f循环结束i{i}) # 调试输出使用断言检查条件def calculate_average(numbers): assert len(numbers) 0, 列表不能为空 return sum(numbers) / len(numbers)使用日志记录import logging logging.basicConfig(levellogging.DEBUG) for i in range(3): logging.debug(f当前i值: {i}) # 其他代码6. 性能优化与最佳实践6.1 循环性能优化尽量减少循环内部的计算# 不推荐 for i in range(len(data)): result complex_calculation(data[i]) # 推荐 calculation_cache [complex_calculation(x) for x in data] for i in range(len(data)): result calculation_cache[i]使用内置函数替代显式循环# 不推荐 total 0 for num in numbers: total num # 推荐 total sum(numbers)6.2 条件语句最佳实践避免过深的嵌套# 不推荐 if condition1: if condition2: if condition3: # 代码 # 推荐 if not condition1: return if not condition2: return if not condition3: return # 主要代码使用字典替代复杂的if-elif链# 不推荐 if color red: action stop elif color green: action go elif color yellow: action caution # 推荐 color_actions { red: stop, green: go, yellow: caution } action color_actions.get(color, unknown)6.3 代码可读性建议为复杂条件添加解释性变量# 不易读 if (age 18 and has_license) or (age 16 and with_parent): allow_driving True # 更清晰 is_adult_with_license age 18 and has_license is_teen_with_parent age 16 and with_parent allow_driving is_adult_with_license or is_teen_with_parent保持一致的缩进风格通常4个空格# 不推荐 - 混用空格和制表符 if condition: print(Hello) print(World) # 推荐 - 统一使用4个空格 if condition: print(Hello) print(World)