Python 进阶:if 判断与 while / for 循环
- 分类:Python · 进阶
- 更新时间: 2026-10-03
- 来源:py3_adv2.docx
if / elif / else:程序的分岔路口
if 后面的条件成立就执行缩进的代码块,不成立就看 elif(否则如果),最后都不满足走 else。elif 可以有无数个,else 最多一个且不用写条件。
score = 85
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("不及格")
条件里可以用 and、or 把多个条件连起来。if 里还能再套 if,形成多层判断。
如果暂时不想写任何内容,又不能空着,就放一个 pass 占位。
提示:短写法:print("及格" if score >= 60 else "不及格"),这叫三元表达式。
while 循环:条件成立就一直转
while 只要条件为 True 就一直重复执行,直到条件不成立。循环里必须有让条件 eventually 变 False 的语句,否则就是死循环。
i = 1
total = 0
while i <= 100:
total += i
i += 1
print(total)
break 立刻跳出整个循环;continue 跳过本轮剩下的语句,直接进入下一轮。
i = 0
while True:
i += 1
if i % 2 == 0:
continue
if i > 10:
break
print(i)
提示:while 后面还能接 else,循环正常结束(没被 break)时会执行,用得不多但偶尔很妙。
for 循环:遍历神器
for 用来逐个取出序列(字符串、列表、字典等)里的元素,比 while 更常用。配合 range() 可以按次数循环:range(5) 产生 0 到 4。
for i in range(1, 6):
print(i, end=" ")
print()
for ch in "abc":
print(ch)
range 还有两个参数的用法:range(2, 10, 2) 从 2 到 8 每次加 2,第三个参数是步长,倒着数用负数。
total = 0
for i in range(2, 101, 2):
total += i
print(total) # 100 以内偶数和
循环也能嵌套,比如打印九九乘法表:外层 for 控制行,内层 for 控制列。
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}x{i}={i*j}", end=" ")
print()