第六课 条件控制语句
1. 条件判断语句(if语句)
• 执行的流程:
• if语句在执行时,会先对条件表达式进行求值判断,
• 如果为True,则执行if后的语句
• 如果为False,则不执行
• 语法:if 条件表达式 :
代码块
• 代码块代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
• 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
• 代码块就是一种为代码分组的机制
2. input() 函数
• 该函数用来获取用户的输入
• input()调用后,程序会立即暂停,等待用户输入
• 用户输入完内容以后,点击回车程序才会继续向下执行
• 用户输入完成以后,其所输入的的内容会以返回值得形式返回
3. if-else语句
• 语法:
if 条件表达式 :
代码块
else :
代码块
• 执行流程:
• if-else语句在执行时,先对if后的条件表达式进行求值判断
• 如果为True,则执行if后的代码块
• 如果为False,则执行else后的代码块)
4. if-elif-else 语句
# # int() 可以把其他类型的数据强制转换成int类型
# # input()程序阻塞功能
a = int(input('请输入1,2或者0:'))
if a == 0:
print(123)
elif a == 1:
print("hehe")
else:
print('输入数值错误')
# if-elif-else 语句
value = int(input('请输入你的工资:'))
if value >= 30000:
print('有钱任性')
elif value >= 20000:
print('有钱真好')
elif value >= 10000:
print('哥也月薪上万了')
elif value >= 5000:
print('工资还说的过去')
elif value >= 2000:
print('能养活自己了')
else:
print("吃便便去吧")
• 语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
........
else :
代码块
• 执行流程:
• if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
• 如果表达式的结果为True,则执行当前代码块,然后语句结束
• 如果表达式的结果为False,则继续向下判断,直到找到True为止
• 如果所有的表达式都是False,则执行else后的代码块
• 总结: if-elif-else中只会有一个代码块会执行
5. while语句
• 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
• 语法:
while 条件表达式 :
代码块
else:
代码块
• 执行流程:
• while语句在执行时,会先对while语句后面的条件表达式进行求值判断
• 如果判断结果为True,则执行循环体的逻辑(代码块)
• 循环体执行完毕之后,继续对条件表达式进行求值判断,一次类推
• 直到判断结果为False
i = 0
while i < 20:
print(i)
print('hello')
i += 1
>>> 0-19
>>>hello .....hello (20)
# 求100 以内所有偶数的和
# 首先拿到1-100所有的数
# 拿到偶数
# 相加
i = 0
r = 0
while i < 100:
i += 2
r += i
print(r)
>>>2550
i = 0
r = 0
while i < 100:
i += 1
if i % 2 == 0:
r += i
print(r)
>>>2550
6. 循环嵌套
• Python 语言允许在一个循环体里面嵌入另一个循环。
• 语法
while 表达式:
while 表达式:
代码块
代码块
i = 0
while i < 5:
print('*', end=' ')
print('*', end=' ')
print('*', end=' ')
print('*', end=' ')
print('*', end=' ')
print()
i += 1
>>>
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
i = 0
while i < 5:
j = 0
while j < 5:
print('*',end=" ")
j += 1
print()
i += 1
>>>
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
i = 0
while i < 5:
j = 0
while j < i + 1:
print('*',end=" ")
j += 1
print()
i += 1
>>>
*
* *
* * *
* * * *
* * * * *
i = 0
while i < 5:
j = 0
while j < 5 - i:
print('*',end=" ")
j += 1
print()
i += 1
>>>
* * * * *
* * * *
* * *
* *
*
###99乘法表
i = 0
while i < 9:
i += 1
j = 0
while j < i:
j += 1
print(f'{j}*{i} = {j*i}',end=" \t")
print()
>>>
1*1 = 1
1*2 = 2 2*2 = 4
1*3 = 3 2*3 = 6 3*3 = 9
1*4 = 4 2*4 = 8 3*4 = 12 4*4 = 16
1*5 = 5 2*5 = 10 3*5 = 15 4*5 = 20 5*5 = 25
1*6 = 6 2*6 = 12 3*6 = 18 4*6 = 24 5*6 = 30 6*6 = 36
1*7 = 7 2*7 = 14 3*7 = 21 4*7 = 28 5*7 = 35 6*7 = 42 7*7 = 49
1*8 = 8 2*8 = 16 3*8 = 24 4*8 = 32 5*8 = 40 6*8 = 48 7*8 = 56 8*8 = 64
1*9 = 9 2*9 = 18 3*9 = 27 4*9 = 36 5*9 = 45 6*9 = 54 7*9 = 63 8*9 = 72 9*9 = 81
for 变量 in 循环规则:
for 变量 in 循环规则:
代码块
代码块
7. break和continue
• break 可以用来立即退出循环语句,包括else语句
i = 0
while i < 20:
if i == 3:
break
print(i)
i += 1
else:
print('执行结束')
>>>
0
1
2
• continue 用来跳过当初循环
i = 0
while i < 20:
i += 1
if i == 3:
continue
print(i)
else:
print('执行结束')
>>>
1
2
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
执行结束
8. 作业
#求1000以内的水仙花数
i = 1
while i < 10:
j = 0
while j < 10:
k = 0
while k < 10:
if i ** 3 + j ** 3 + k ** 3 == int('%d%d%d'%(i,j,k)):
print('%d%d%d'%(i,j,k))
k += 1
j += 1
i += 1
>>>
153
370
371
407