条件语句:if

单一分支

格式:

if 条件表达式:
    [代码块]

执⾏流程:

  • 如果条件表达式为真,则执行【代码块】
  • 否则不执行,直接执行if语句后面的后续代码】

注意:

  • 单if语句可以嵌套
  • 【代码块】必须缩进

双向分支

格式:

if 条件表达式:
    【语句块A】 
else:
    【语句块B】

执⾏流程:

  • 如果条件表达式为真,执⾏【语句块A】然后执⾏【后续代码】
  • 否则执⾏【语句块B】,然后再执行后续代码
  • ⼆选⼀,不可能既执行后续代码

注意:

  • if-else可以嵌套
  • 【语句块A】和【语句块B】必须缩进

多向分支

格式:

if 条件1:
    [代码段1]
elif 条件2:
    [代码段2]
............ 
elif 条件n:
    [代码段n] 
else:
    [else语句块]

执行流程:

  • 多选⼀
  • 如果满⾜条件1,执⾏【代码段1】,然后跳出if-elif语句,执⾏后续代码
  • 如果不满⾜条件1,则判断是否满⾜足条件2
  • 如果满⾜执⾏【代码段2】,然后跳出if-elif语句,执⾏后续代码
  • 如果所有条件(1~n)都不满⾜,执⾏【else语句块】,然后执⾏后续代码

注意:

else是可选的,可以写也可以不写

循环语句

重点区分:

  • while语句的循环变量必须在循环体外部的提前定义
  • while嵌套语句中,内层循环的循环变量必须在外层循环
  • for语句的循环变量无需提前定义,直接在循环条件中使用即可

while语句

while语句的格式

while
  • 格式
# 计算1-100的和 
sum1 = 0 
i = 1 
while i <= 100:
    sum1 += i
    i += 1
print(sum1,i)
  • 执行流程:当遇到while语句时,先计算表达式的值
  • 如果表达式值为真,则执行循环体
  • 如果表达式值为假,则跳过整个while语句,执行while语句后面的代码
while-else
  • 格式
while 表达式:
    循环体 
else:
    [else语句块]
i = 0
while i <= 100:
    print(i)
    if i >= 50:
        break
    i += 1
else:
    print("i>100")
print("break")
  • 执行流程:
  • 当while语句完成后,执行【else语句块】
  • 如果用break跳出循环,则不执行else语句

while语句的嵌套

  • 格式
while 条件1:
    [语句块A]
    while 条件2:
        [语句块2]
  • 执行流程:首先判断外层循环
  • 如果条件1为真,则执行【语句块A】,然后进入内层循环并判断条件2是否成立
  • 如果条件2为真,则执行【语句块B】,然后回到外层循环
  • 如果条件2为假,则跳出内层循环,回到外层循环
  • 如果条件1为假,则跳过整个循环体(包括内外层)
  • 特点:
  • 外层循环走一步,内层循环也执行一遍
  • 外层循环和内层循环的循环变量必须完全不同
  • 内层循环必须完全嵌套到外层循环中,且内层循环的循环变量应该在外层循环定义
  • 案例:打印九九乘法表
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print("%2d*%2d=%2d" % (i, j, i*j), end=" ")
        j += 1
    print()
    i += 1

break continue exit() pass

break

作用:结束当前循环,然后执行循环体后面的语句,只对当前这一重的循环体有效

i = 1
while i <= 10:
    print(i, end=" ")
    if i == 5:
        break
    i += 1
continue
  • 作用:
  • 用来跳过当前循环的剩余语句,然后开启下一轮循环
  • 只能出现在while语句和for语句中
  • 案例:
i = 0
while i < 10:
    i += 1
    if i == 5:
        continue
    print(i, end=" ")
exit()

作用:当遇到exit()语句时,直接结束程序

pass

占位符,只是为了保证语法的完整性,本身没有什么实际意义

for语句

for

作用:for循环语句,可以用来遍历任何序列的项目,如一个列表或者一个字符串

for iterating_var in sequence:
    statements

案例:乘法口诀表

for i in range(1, 10):
    for j in range(1, 10):
        if j <= i:
            print("%2d*%2d=%2d" % (i, j, (i*j)), end=" ")
    print("\n")

for-else

  • 作用:else语句会在for循环正常执行完以后,再执行
  • 语法:
  • 循环体中无break语句
# for语句 
for i in range(1, 5):
    for j in range(1, 6):
        if j % 2 == 0:
            print("%d是偶数" % j)
        else:
            print("%d是奇数" % j)
    else:
        print("else statements")
else:
    print("outer else")  # 执行完for i in range(1,5)循环体后执行

print("outer for")  # 执行完上述所有语句后执行


# 输出结果:
1是奇数
2是偶数
3是奇数
4是偶数
5是奇数
else statements
1是奇数
2是偶数
3是奇数
4是偶数
5是奇数
else statements
1是奇数
2是偶数
3是奇数
4是偶数
5是奇数
else statements
1是奇数
2是偶数
3是奇数
4是偶数
5是奇数
else statements
outer else
outer for
  • 循环体中有break语句:
# for语句
for i in range(1, 5):
    for j in range(1, 6):
        if j % 2 == 0:
            print("%d是偶数" % j)
        else:
            print("%d是奇数" % j)
            break  # 退出for j in range(1,6)循环体
    else:
        print("else statements")
else:
    print("outer else")  # 执行完for i in range(1,5)循环体后执行

print("outer for")  # 执行完上述所有语句后执行

# 输出结果:
1是奇数
1是奇数
1是奇数
1是奇数
outer else
outer for