python流程控制

流程控制

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)
上一篇:to_char()函数


下一篇:java格式化数字 NumberFormat及DecimalFormat