python入门day06——流程控制之if判断、while循环、for循环
一、流程控制之if判断
if判断的完整语法:
if 条件:(可以是if 10 if 10 and 20)
代码1
代码2
代码3
...
elif 条件2:
代码1
代码2
代码3
...
elif 条件3:
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
...
运行原理示范
print(1111)
print(2222)
if True:
print('if的子代码1')
print('if的子代码2')
print('if的子代码3')
print(333)
1、语法1
"""
if 条件1:
代码1
代码2
代码3
...
"""
# 应用案例
gender = 'female'
age = 18
is_beautiful = True
if gender == 'female' and 18 <= age <= 60 and is_beautiful:
print('开始表白。。。')
print('后续代码...')
# 开始表白。。。
# 后续代码...
2、语法2
"""
if 条件1:
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
...
"""
gender = 'female'
age = 99
is_beautiful = True
if gender == 'female' and 18 <= age <= 60 and is_beautiful:
print('开始表白。。。')
else:
print('阿姨好,开个玩笑...')
print('后续代码...')
# 阿姨好,开个玩笑...
# 后续代码...
3、语法3
"""
if 条件1:
代码1
代码2
代码3
...
elif 条件2:
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
...
"""
score = input('请输入你的成绩: ')
score = int(score)
if score >= 90:
print('优秀')
elif 80 <= score:
print('良好')
elif score >= 70:
print('普通')
else:
print('很差')
# 请输入你的成绩: 88
# 良好
2、语法4
"""
if的嵌套
"""
age = 17
is_beautiful = True
star = '水平座'
if 16 < age < 20 and is_beautiful and star == '水平座':
print('开始表白。。。。。')
is_successful = True
if is_successful:
print('两个从此过上没羞没臊的生活。。。')
else:
print('阿姨好,我逗你玩呢,深藏功与名')
print('其他代码.............')
# 开始表白。。。。。
# 两个从此过上没羞没臊的生活。。。
# 其他代码.............
二、流程控制之while循环
"""
语法:
while 条件:
代码1
代码2
代码3
...
基本使用1:
print('start.....')
while 10 < 3:
print('hello1')
print('hello2')
print('hello3')
print('end....')
基本使用2:
count = 0
while count < 6: # 6 < 6
print(count)
count += 1
print('end.....')
"""
1、基本使用
db_name = "sa"
db_pwd = "123"
while True:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
else:
print("用户账号或密码错误"
2、如何结束while循环
(1)把条件改为False
db_name = "sa"
db_pwd = "123"
tag = True
while tag:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
tag = False
else:
print("用户账号或密码错误")
print('其他。。。。。。。。。')
(2)break:直接终止本层循环
db_name = "sa"
db_pwd = "123"
while True:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
break
else:
print("用户账号或密码错误")
print('其他。。。。。。。。。')
"""
while True:
while True:
while True:
break
break
break
tag = True
while tag:
while tag:
while tag:
tag = False
"""
3、死循环
while True:
# print('Hello')
# input(">>: ")
1+1
4、while+continue: 终止本次循环
强调1:不要在continue之后编写同级别的代码
count = 0
while count < 6: # 5 < 6
if count == 3or count == 4:
count += 1
continue
# count+=1 # 不要写在这里
print(count)
count += 1
强调2:如果不想执行本次循环之后的代码,可以用continue,但是如果本次循环本来就没有要继续运行的后续代码了,就没必要加continue了
db_name = 'egon'
db_pwd = '123'
while True:
inp_name = input('请输入您的用户名:')
inp_pwd = input('请输入您的密码:')
if inp_name == db_name and inp_pwd == db_pwd:
print('用户登录成功')
break
else:
print('用户账号或密码错误')
# continue
print('while子代码。。。。。。') # 加了continue后这条代码在else里永远不会出现
# 如果没有 print('while子代码') else同级代码本身后面没有代码 那么也就没必要加continue了
5、while + else
count = 0
while count < 6:
print(count)
if count == 3:
break # 有break后直接终止 就不是正常死亡 就不会运行else
count += 1
else:
print('会在while循环正常死亡之后运行')
print('。。。。。。。。')
# else的应用场景
"""
把多个多个账号密码存起来
要求用户输入账号
要求用户输入密码
循环:
从存放多个正确账号密码的地方取出一组账号和密码
判断 输入账号 等于 取出的账号 并且输入的密码 等于 取出的密码
告诉用户认证成功
break
# 否则:
# 继续取账号密码判断(continue) # 因为continue后面没有其他代码 所以没必要这步骤
else:
print('告诉用户输入的账号密码错误')
"""
6、while循环嵌套
db_name = "egon"
db_pwd = "123"
while True:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
while True:
print("""
0 退出
1 取款
2 提现
3 转账
""")
cmd=input("请输入您的命令编号:")
if cmd == "0":
break
elif cmd == "1":
print("正在取款")
elif cmd == "2":
print("正在提现")
elif cmd == "3":
print("正在转账")
else:
print("不知道的指令,请重新输入")
break
else:
print("用户账号或密码错误")
# tag的方式结束循环
db_name = "egon"
db_pwd = "123"
tag = True
while tag:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
while tag:
print("""
0 退出
1 取款
2 提现
3 转账
""")
cmd=input("请输入您的命令编号:")
if cmd == "0":
tag = False
elif cmd == "1":
print("正在取款")
elif cmd == "2":
print("正在提现")
elif cmd == "3":
print("正在转账")
else:
print("不知道的指令,请重新输入")
else:
print("用户账号或密码错误")
三、流程控制之for循环
"""
1.for循环主要用于循环取值,例如列表、字典、字符串
2.for循环循环的次数取决于值得个数
while循环循环的次数取决条件什么时候变为False或者什么时候执行break
3.终止for循环只有break一种方案
"""
1、基本使用
l = [111, 222, 333, 444, 555]
i = 0
while i < len(l):
print(l[i])
i += 1
for x in l:
print(x)
d = {'k1': 123, 'k2': 'sa', 'k3': [1, 2, 3]}
for k in d:
print(k, d[k])
msg='hello word'
for x in msg:
print(x)
l = [['aaa',111],['bbb',222],['ccc',333]]
for x in l:
print(x)
for x,y in l:
print(x,y) # 用了解压赋值
2、for + break
for x in [111, 222, 333, 444, 555]:
if x == 333:
break
print(x)
# 111
# 222
3、for + continue
for x in [111, 222, 333, 444, 555]:
if x == 333:
continue
print(x)
# 111
# 222
# 444
# 555
4、for + else
for x in [111, 222, 333, 444, 555]:
if x == 333:
break
print(x)
else:
print(print(' =====>'))
5、for循环嵌套
for i in range(2):
print('外层循环-->', i)
for j in range(3):
print('内层-->', j)
# 外层循环--> 0
# 内层--> 0
# 内层--> 1
# 内层--> 2
# 外层循环--> 1
# 内层--> 0
# 内层--> 1
# 内层--> 2
注意:终止for循环只有break一种方案
6、for循环控制循环次数:range()
in后直接放一个数据类型来控制循环次数有局限性:当循环次数过多时,数据类型包含值的格式需要伴随着增加
range功能介绍
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
>>> range(1,9) # 1...8
[1, 2, 3, 4, 5, 6, 7, 8]
>>>
>>> range(1,9,1) # 1 2 3 4 5 6 7 8
[1, 2, 3, 4, 5, 6, 7, 8]
>>> range(1,9,2) # 1 3 5 7
[1, 3, 5, 7]
1、for搭配range,可以按照索引取值,但是麻烦,所以不推荐
l=['aaa','bbb','ccc'] # len(l)=3
for i in range(len(l)):
print(i,l[i])
# 0 aaa
# 1 bbb
# 2 ccc
for x in l:
print(x)
# aaa
# bbb
# ccc
总结for循环与while循环的异同
1、相同之处:
都是循环,for循环可以干的事,while循环也可以干
for+break: 同while+break循环一样
for+else:同while+else循环一样
2、不同之处:
while循环称之为条件循环,循环次数取决于条件何时变为假
for循环称之为"取值循环",循环次数取决in后包含的值的个数