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()