python流程控制
一 简述
""" 流程 :代码执行的过程 控制: 对代码执行的过程进行把控 三大结构: 1.顺序结构: 默认代码从上到下一次执行 2.分支结构: 4个分支(单项分支,双项分支,多项分支,巢状分支) 3.循环结构: while , for
二 分支结构
1.1单项分支
"""
if 条件表达式:
code1
code2
...
如果条件表达式成立,为True,执行对应的代码块,反之,不执行;
"""
study_bug = "小林" if study_bug == "小林": print("你的年薪最高") print("你的生活最好") print("你吃的,喝的,用的,玩的很高档") print("在家红旗不倒,在外彩旗飘飘")
1.2 双项分支(二选一)
"""
if 条件表达式:
code1
code2
else:
code3
code4
...
如果条件表达式为真,为True执行if所对应的代码块,也叫做真区间
如果条件表达式为假,为False执行else所对应的代码块,也叫做假区间
"""
goodman = "小明" if goodman == "小明": print("勤工俭学") print("必成大器") print("有人喜欢") print("贪财好色") else: print("偷鸡摸狗") print("奸杀掠夺") print("坑蒙怪骗") print("人面兽心")
练习:
"""
登录:输入账号和密码
账号: admin 密码: 111
输入账号密码之后,提示登录成功,反之登录失败;
"""
input输入的所有内容,都是字符串.
"""
res = input("先森~ 你妈贵姓:")
print(res , type(res))
"""
username = input("请输入您的账号:") password = input("请输入您的密码:") if username == "admin" and password == "111": print("登陆成功") else: print("登录失败")
1.3 多项分支
"""
if 条件表达式1:
code1...
elif 条件表达式2:
code2
elif 条件表达式3:
code3
else:
code4
如果条件表达式1成立,执行code1代码块,反之
如果条件表达式2成立,执行code2代码块,反之
如果条件表达式3成立,执行code2代码块,反之
所有条件都不满足,执行else这个分支做收尾;
执行code4这个代码块结构
elif 后面可以接条件,可以是0个或者多个
else 后面不可以接条件,可以是0个或者1个
"""
youqian = False youfang = False youche = False youyanzhi = True youtili = True if youqian == True: print("老娘要嫁给你1") elif youfang == True: print("老娘要嫁给你2") elif youche == True: print("老娘要嫁给你3") elif youyanzhi == True: print("老娘要嫁给你4") elif youtili == True: print("老娘要嫁给你5") else: print("你是个好人..")
1.4 巢状分支
"""单项分支,双向分支,多项分支的互相嵌套的一种语法"""
youqian = True youfang = True youche = False youyanzhi = True youtili = False if youqian == True: if youfang == True: if youche == True: if youyanzhi == True: if youtili == True: print("别想跑了,老娘要定了...") else: print("上道边,重金求子") else: print("请你去泰国整容...") else: print("你去买了布加迪威航") else: print("你是个好人 .. ")
练习:
#女生找对象
# 男生在1米~1.5米之间 小强 你在哪里?
# 男生在1.5~1.7米之间 没有安全感~
# 男生 1.7~ 1.8米之间 帅哥 留个电话
# 男生 1.8~2米之间 帅哥 你建议多一个女朋友吗
name = float(input('请输入身高')) if 1 <= name <= 1.5: print('小强在哪里') elif 1.5 <= naem 1.7<=: print('没有安全感') elif 1.7 < name <= 1.8: print('帅哥,留个电话') elif 1.8< name <= 2: print('帅哥,建议多个女朋友吗?') else: print('...')
1.5 循环结构
"""
特点: 减少冗余代码,提升代码效率
while for 两种循环
语法:
while 条件表达式:
code1...
(1) 初始化一个变量
(2) 写上循环的条件
(3) 写上自增自减值
(4) 写上对应的循环逻辑
"""
练习:
# 打印1 ~ 100
# 第一步 i = 1 # 第二步 while i <= 100: # 第四步 print(i) # 第三步 i += 1 # i = i + 1 解析: """ 首先,先初始化变量i 然后,判断 i <= 100 条件为真, 执行循环体中的代码块 i = 1 , print(1) i += 1 , i => 2 回到20行,进入到循环的条件中继续判断 i = 2 判断 i <= 100 条件为真, 执行循环体中的代码块 i = 2 , print(2) i += 1 , i => 3 回到20行,进入到循环的条件中继续判断 i = 3 判断 i <= 100 条件为真, 执行循环体中的代码块 i = 3 , print(3) i += 1 , i => 4 ... ... 当i = 101的时,判断 i <= 100 条件为假, 不执行循环体中的代码块 到此循环结束. """
# 做1 ~ 100的累加和
i = 1 total = 0 while i <= 100: total += i # total = total + i i+=1 print(total) 解析: """ i = 1 i <= 100成立,执行循环中代码块 total = total + i => total = 0 + 1 i+=1 => i = 2 回到59行,循环的判断条件中 i = 2 i <= 100成立,执行循环中代码块 total = total + i => total = 0 + 1 + 2 i+=1 => i = 3 回到59行,循环的判断条件中 i = 3 i <= 100成立,执行循环中代码块 total = total + i => total = 0 + 1 + 2 + 3 i+=1 => i = 4 .... .... 依此类推 i = 101 i <= 100不成立,不执行循环中代码块 到此循环结束 此时看total total = 0+1+2+3+ ..... 100 = 5050 """
# 用死循环的方法完成1~100的累加和
i = 1 total = 0 sign = True while sign: total += i i+=1 if i == 101: sign = False print(total)
# (1)打印 一行十个小星星* help(print)
i = 1 while i <= 10: # 默认打印不换行,默认补空字符串 print("*",end="") i+=1 # 默认打印直接换行 print() # help(print)
# (2)通过打印一个变量的形式,展现一行十个小星星
i = 0 strvar = "" while i<10: strvar += "*" i+=1 print(strvar) print("*" * 10)
# (3)一行十个换色的星星 ★☆★☆★☆★☆★☆
i = 0 while i < 5: print("★☆",end="") i += 1 print("<========2=======>") i = 0 while i < 10: if i % 2 == 0: print("★",end="") else: print("☆",end="") i += 1 print("<========3========>") i = 0 strvar = "" while i < 10: if i % 2 == 0: strvar += "★" else: strvar += "☆" i+=1 print(strvar)
# (4)用一个循环,打印十行十列小星星
i = 0 while i < 100: print("*",end="") if i % 10 == 9: print() i += 1
# (5) 一个循环实现十行十列,格列换色的小星星
i = 0 while i < 100: # 打印星星 if i % 2 == 0: print("★",end="") else: print("☆",end="") # 打印换行 if i % 10 == 9: print() i += 1
# (6)一个循环实现十行十列,隔行换色的小星星
"""结论: 任意数和n进行地板除,会得到n个相同的数 结论: 任意数和n进行地板除,会得到n个相同的数 """ i = 0 while i < 100: # 输出星星 if i // 10 % 2 == 0: print("★",end="") else: print("☆",end="") # 打印换行 if i % 10 == 9: print() i += 1