一、if多分支机构:if-elif-else
-
应用场景:根据不同的条件执行不同的操作
-
语法:
if 条件语句1: # 如果成立
代码段1
elif 条件语句2: # 如果不成立
代码段2
…
else: # 如果上述均不成立,其他情况
代码段N -
执行过程:从上往下依次判断条件语句的结果是否为True。
例:定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常。
height = float(input('please input your height(m):'))
weight = float(input('please input your weight(kg):'))
if 18.5 <= weight / height ** 2 <= 24.9:
print("正常")
elif weight / height ** 2 < 18.5:
print("偏瘦")
else:
print("偏胖")
练习:输入成绩,如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C; 60分-70分(不含70分)输出D;60分以下输出E。
score = float(input('please input your score:'))
if score >= 90:
print('A')
elif score >= 80: # elif 80 <= score < 90:
print('B')
elif score >= 70: # elif 70 <= score < 80:
print('C')
elif score >= 60: # elif 60 <= score < 70:
print('D')
else:
print('E')
二、if嵌套:if结构(if,elif,else)里面还有其他的 if
练习:输入一个数,如果输入的数是偶数就打印“偶数”,否则打印奇数;如果这个数能被4整除,还要打印“4的倍数”。
x = int(input('please input an integer:'))
if x % 2 == 0:
print('偶数')
if x % 4 == 0: # 也可以写在最后,但这样嵌套写性能更好
print('4的倍数')
else:
print('奇数')
三、循环
-
循环结构-让代码重复执行多次(for循环,while循环)
-
for循环
2.1 语法
for 变量 in 序列:
循环体
说明:
序列指容器类型数据类型的数据,例如:range、字符串、列表、字典、元组、集合、迭代器、生成器等;
循环体指需要重复执行的代码;
2.2 执行过程:
让变量去序列中取值,一个一个的取,取完为止;每取一个值执行一次循环体
(for循环的循环次数由序列中元素的个数决定)
例:
for x in 'abcd':
print('hello')
# 第一次循环:x = 'a',打印一次,第二次循环:x = 'b'.打印一次...一直到第五次:x取不到值,循环结束。
for x in 'python':
print(x) # python中每个字母打印一行
-
range函数
range(N),表示0到N的前闭后开的区间范围:range(10)表示0到9;
range(M,N),表示M到N的前闭后开的区间范围,里面包含:M,M+1,M+2…,N-1;range(M,N,Step),表示从M到N的前闭后开的区间范围,step为步长,如果步长step为2,即差为2的等差数列,不设置默认为1。
range(1,10,2) # 1,3,5,7,9
例1;"++++"打印10次:
for x in range(10):
print("++++")
例2:
for i in range(5,10):
print(i)
练习:产生数字范围-100到-1,并且打印出来
for i in range(-100,0):
print(i)
练习:写程序产生数字:
1)-1, -3, -5, -7, -9
2)5,4,3,2,1
for x in range(-1,-10,-2):
print(x)
for i in range(5,0,-1):
print(i)
练习1:计算1+2+3+…+100的和:
result = 0 # 存储求和的结果,设置默认为0,不影响结果
for i in range(1,101):
result += i
print(result)
练习2:求10+20+30+…+100的和
result = 0
for x in range(10,101,10):
result += x
print(result)
统计个数:
练习3统计1~100中能被3整除的数的个数
# 方法一:
sum1 = 0
for i in range(1, 101):
if i % 3 == 0:
sum1 += 1
print(sum1)
# 方法二:
count = 0
for i in range(3, 101, 3):
count += 1
print(count)
-
while循环
1.1 语法:
while 条件语句: # 任何有结果的表达式都可以(赋值语句不行)
循环体
- while循环执行过程图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DbEtfBAl-1611235518028)(C:\Users\kudo\Desktop\QQ图片20210121154522.png)]
1.2 执行过程
不断判断条件语句的结果是否为True,如果为True就执行循环体,然后再判断;如果为False,循环结束。
- for循环和while循环的选择
若循环次数确定,使用for循环;若循环次数不确定,使用while循环。
练习:不断输入数据,直到输入的内容是0为止
x = 1
while x != 0:
x = int(input("请输入一个数:"))
四、循环关键字:continue、break
continue&break的执行示意图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4z2cPuVH-1611235518031)(C:\Users\kudo\Desktop\QQ图片20210121161232.png)]
-
continue
-
只能出现在循环体中
-
continue的作用:结束当次循环,直接进入下一次循环的判断
-
for x in range(1,11):
if x % 3 == 0:
continue # 当x是3的倍数时,就执行continue,不会打印出来
print(x)
- break
- 只能出现在循环体中
- break的作用:直接结束整个循环
while True: # 第一步:while True
value = int(input("请输入数字:")) # 第二步:描述清楚需要重复执行的操作
if value == 0: # 第三步:添加循环结束条件
break
练习:使用while循环打印1~10
x = 1
while True:
print(x)
x += 1
if x > 10:
break
-
else
1) 完整 for循环: for 变量 in 序列: 循环体 else: 代码段 2)完整 while循环: while 条件语句: 循环体 else: 代码段
- else的存在不影响原来循环的执行。
- 当循环程序自然结束,else后面的代码段会执行;当循环因为遇到break而结束的,那else后面的代码段不会执行。
# 判断一个数是质数:
num = 17
for x in range(2, num):
if num % x == 0:
print('不是质数')
break
else:
print('是质数')
```
- else的存在不影响原来循环的执行。
- 当循环程序自然结束,else后面的代码段会执行;当循环因为遇到break而结束的,那else后面的代码段不会执行。
# 判断一个数是质数:
num = 17
for x in range(2, num):
if num % x == 0:
print('不是质数')
break
else:
print('是质数')