05条件控制语句
- 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语句
- 语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
…
else :
代码块 - 执行流程:
- if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
- 如果表达式的结果为True,则执行当前代码块,然后语句结束
- 如果表达式的结果为False,则继续向下判断,直到找到True为止
- 如果所有的表达式都是False,则执行else后的代码块
- 总结: if-elif-else中只会有一个代码块会执行
- 语法:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/8/27 0027 0:14
# @Author : Oliver
if 1<2:
print('1是比2要小的')
a=input('请输入一个数字')
a=int(a)
if a>50:
print('a大于50')
else:
print('a小于等于50')
if a>50:
print('111')
elif a>20:
print('222')
else:
print('333')
结果显示:
1是比2要小的
请输入一个数字99
a大于50
111
- 5、while语句
- 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
- 语法:
while 条件表达式 :
代码块
else:
代码块
#求100以内的整数之和
s=0
i=0
while i<100:
s+=i
i+=1
print(s)
结果显示:
4950
- 6、循环嵌套
- Python 语言允许在一个循环体里面嵌入另一个循环。
- 语法
- while 表达式:
while 表达式:
代码块
代码块
- while 表达式:
#求九九乘法表
i = 1
while i<=9:
j=1
while j<=i:
print("%d*%d=%-2d " % (j, i, i*j), end = '')
j+=1
print('\n')
i+=1
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 循环规则:
代码块
代码块
#相加为10的组合
lst1 = [1, 3, 5, 7, 8]
lst2 = [2, 2, 7, 9, 7]
for i in lst1:
for j in lst2:
if i + j == 10:
print(i, j)
break
结果显示:
1 9
3 7
8 2
- 7、break和continue
- break 可以用来立即退出循环语句,包括else语句
- continue 用来跳过当初循环
break实例!
for letter in 'Python': # 第一个实例
if letter == 'h':
break
print
'当前字母 :', letter
var = 10 # 第二个实例
while var > 0:
print('当前变量值 :', var)
var = var - 1
if var == 5: # 当变量 var 等于 5 时退出循环
break
print("Good bye!")
结果显示:
当前变量值 : 10
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
Good bye!
Process finished with exit code 0
continue实例!
for letter in 'Python': # 第一个实例
if letter == 'h':
continue
print('当前字母 :', letter)
var = 10 # 第二个实例
while var > 0:
var = var - 1
if var == 5:
continue
print
'当前变量值 :', var
print("Good bye!")
结果显示:
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : o
当前字母 : n
Good bye!
课程作业:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/8/30 0030 20:11
# @Author : Oliver
#1000以内的水仙花数
#值的是一个3位数 每个位数上的n次幂之和等于他本身
#先获取1000以内的3位数
i=100
while i<1000:
#print(i)
#判断哪些数是水仙花数
#假设i的百位数是a,十位数是b,个位数是c
a=i//100
b=(i-a*100)//10
c=i%10
if a**3+b**3+c**3==i:
print(i)
i+=1
# 判断输入的是不是质数
num=int(input('请输入任意大于1的数字:'))
i=2
j=0#标记
while i<num:
if num%i==0:
j=1
i+=1
if j:
print(num,'不是质数')
else:
print(num,'是质数')
结果显示:
153
370
371
407
请输入任意大于1的数字:9
9 不是质数