流程控制
if判断语句
- 单分支
if 条件:
满足条件后要执行的代码
- 双分支
if 条件:
满足条件后要执行代码
else:
不满足条件执行的代码
- 多分支
if 条件1:
满足条件1后要执行的代码
elif 条件2:
满足条件2后要执行的代码
elif 条件3:
满足条件3后要执行的代码
else:
条件都不满足执行的代码
- if嵌套
if 条件1:
if 条件2:
满足条件1且满足条件2后要执行的代码
else:
满足条件1且不满足条件2后要执行的代码
else:
if 条件3:
不满足条件1但满足条件3后要执行的代码
elif 条件4:
不满足条件1但满足条件4后要执行的代码
else:
不满足条件1也不满足条件3,4后要执行的代码,
- 案例1:通过年龄是否成年与性别来判断对一个人的称呼
name = input("请输入你的姓名:")
age = int(input("请输入你的年龄:"))
sex = input("请输入你的性别(男|女):")
if sex == "男" and age < 18:
print("{}小哥哥".format(name))
elif sex == "男" and age >=18:
print("{}先生".format(name))
elif sex == "女" and age < 18:
print("{}小姐姐".format(name))
elif sex == "女" and age >= 18:
print("{}女士".format(name))
else:
print("对不起,无法判断")
#执行过程
请输入你的姓名:李四
请输入你的年龄:23
请输入你的性别(男|女):女
李四女士
- 案例1:通过嵌套实现
name = input("请输入你的姓名:")
age = int(input("请输入你的年龄:"))
sex = input("请输入你的性别(男|女):")
if sex == "男":
if age < 18:
print("{}小哥哥".format(name))
else:
print("{}先生".format(name))
elif sex == "女":
if age < 18:
print("{}小姐姐".format(name))
else:
print("{}女士".format(name))
else:
print("性别输入有误")
- 案例1扩展:
name = input("请输入你的姓名:")
age = input("请输入你的年龄:")
if not age.isdigit():
print("输入的为不合规的数")
exit()
else:
age = int(age)
sex = input("请输入你的性别(男|女):")
if sex == "男":
if age < 18:
print("{}小哥哥".format(name))
else:
print("{}先生".format(name))
elif sex == "女":
if age < 18:
print("{}小姐姐".format(name))
else:
print("{}女士".format(name))
else:
print("性别输入有误")
while不定循环
- 只要满足条件,就进入循环
- 格式
while 条件:
满足条件执行的代码
- 循环控制语句
- continue 跳出本次循环,直接执行下一次循环
- break 退出循环,执行循环体外的代码
- exit() 退出python程序,可以指定返回值
- 案例1优化
name = input("请输入你的姓名:")
while True:
age = input("请输入你的年龄:")
if not age.isdigit():
print("输入的不是数字")
continue
else:
age = int(age)
break
sex = input("请输入你的性别(男|女):")
if sex == "男":
if age < 18:
print("{}小哥哥".format(name))
else:
print("{}先生".format(name))
elif sex == "女":
if age < 18:
print("{}小姐姐".format(name))
else:
print("{}女士".format(name))
else:
print("性别输入有误")
- 案例2:猜数字游戏
import random
num = random.randint(1, 100)
count = 0
while True:
guess_num = input("请输入你猜的数字(1-100):")
count += 1
if not guess_num.isdigit():
print("输入的不是数字,请重新输入")
continue
else:
guess_num = int(guess_num)
if guess_num > num:
print("猜大了")
elif guess_num < num:
print("猜小了")
else:
print("恭喜你仅猜了{}次,就猜对了".format(count))
exit()
for定循环
-
for循环遍历一个对象(比如数据序列,字符串,列表,元组等),根据遍历的个数来确定循环次数
-
格式
for 变量 in 数据:
执行的代码
- 案例3:打印99乘法表
for i in range(1, 10):
for j in range(1, i+1):
print("{}*{}={}".format(j, i, i*j), 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
循环嵌套
- if,while,for都可以互相嵌套
- 案例4:打印1-1000的质数(只能被1和自己整除的数)
for i in range(2, 1001):
for j in range(2, i):
if i%j == 0:
break
else:
print(i)