流程控制
流程控制之if判断
语法
if判断是干什么的? if判断简单来说其实是计算机在判断人在做判断.就是说,如果这样干什么,如果那样干什么.
1.1 (if)
记住我们学习计算机编程,不管如何变,都是为了让计算机像人一样工作.比如你判断一个女生,是不是你喜欢的,我们首先会判断她年龄多大,年龄在18到20长得漂亮,很好表白,我们的if就是让计算机去判断这么一个过程.if表示if成立代码会干什么.
if 条件:
代码1
代码2
代码3
...
# 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)
girl_of_age = 18
if girl_of_age == 18 and girl_of_age < 20:
print("喜欢表白")
print('结束')
喜欢表白
结束
1.2 if...else
if 条件
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
...
if...else 表示if成立代码会干什么,else不成立会干什么.
girl_of_age = 25
if girl_of_age == 18 and girl_of_age < 20:
print("喜欢表白")
else:
print('阿姨好')
阿姨好
1.3if...elif...else
if 条件1:
代码1
代码2
代码3
...
elif 条件2:
代码1
代码2
...
else:
代码1
代码2
...
if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么.
girl_of_age = 25
if girl_of_age > 18 and girl_of_age < 20:
print("喜欢表白")
elif girl_of_age < 30 and girl_of_age >20:
print("考虑下")
else:
print('阿姨好')
考虑下
if的嵌套
简单理解就是我们表白成功了,那我们又要干啥,不成功又要干啥.
girl_of_age = 18
is_success = False
if girl_of_age > 16 and girl_of_age < 22:
print('开始表白')
if is_success:
print('那我们一起走吧...')
else:
print('我逗你玩呢')
else:
print('阿姨好')
开始表白
我逗你玩呢
流程控制之while循环
语法
简单理解为循环就是一个重复的过程,我们人需要需要重复的干一件事,那么计算机就是在模仿人做事.比如你游戏账号验证失败,那么就需要从新验证.这时候就用到了while循环,while循环又称为条件循环.
while 条件
code1
code2
code3
...
while True:
print(10)
age = 16
while True:
inp_age = input('age:')
inp_age = int(inp_age)
if inp_age > age:
print('猜大了')
elif inp_age < age:
print('猜小了')
else:
print('猜对了')
这样就实现了一个猜年龄的循环,虽然实现了功能但你输对了他也会继续.
while + break
break的意思为终止掉当前层的循环,执行其他代码.
while True:
print("1")
print('2')
break
print('3')
1
2
上面的代码没啥意义,要记住循环的目的就是让计算机像人一样工作,去循环的处理事情,下面我们来通过while+break展示一下有意义的代码.
age = 16
while True:
inp_age = input('age:')
inp_age = int(inp_age)
if inp_age == age:
print('猜对了')
break
elif inp_age < age:
print('猜小了')
else:
print('猜大了')
print('猜对了,结束')
age:16
猜对了
猜对了,结束
while + continue
continue的意思是终止掉当前层的循环,直接进入下次循环.
n = 1
while n < 4:
print(n)
n += 1
1
2
3
n = 1
while n < 4:
if n == 2:
n += 1
continue
print(n)
n += 1
1
3
continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。ps:注意是最后一步执行的代码,而不是最后一行。
while True:
if 条件1:
code1
code2
code3
...
else:
code1
code2
code3
...
continue
while循环的嵌套
这里演示ATM机,
比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。
# 退出内层循环的while循环嵌套
while True:
user_db = 'nick'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
while True:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
break
print(f'{cmd} 功能执行')
else:
print('username or password error')
print('退出了while循环')
# 退出双层循环的while循环嵌套
while True:
user_db = 'nick'
pwd_db = '123'
inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
while True:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
break
print(f'{cmd} 功能执行')
break
else:
print('username or password error')
print('退出了while循环')
username: nick
password: 123
login successful
请输入你需要的命令:q
退出了while循环
while + else
# while+else
n = 1
while n < 3:
print(n)
n += 1
else:
print('else会在while没有被break时才会执行else中的代码')
我来简单介绍下这几个语句的区别
假设,让你每天8点起来25点睡觉,连续30天,如果中途没有被干掉,奖励你一本书<修仙大法>
break: 跳出本层循环,跳出循环.当你第十天的时候break了,剩下的20天全部减免了
continue:跳出本次循环.当你第十天的时候continue,第十天减免了,但是剩下的天数还得继续
else:当你中途没有被break干掉,一直在修仙,就会得到<修仙大法>
流程控制之for循环
语法
为什么有了while循环,还需要有for循环呢?不都是循环吗?我给大家出个问题,我给出一个列表,我们把这个列表里面的所有名字取出来
name_list = ['nick', 'jason', 'tank', 'sean']
n = 0
while n < 4:
# while n < len(name_list):
print(name_list[n])
n += 1
nick
jason
tack
sena
字典也有取多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环。
name_list = ['nick', 'jason', 'tank', 'sean']
for item in name_list:
print(item)
nick
jason
tack
sena
for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值
print(list(range(1, 10)))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(1, 10): # range顾头不顾尾
print(i)
1
2
3
4
5
6
7
8
9
for +break
for循环调出本层循环。
# for+break
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
if name == 'jason':
break
print(name)
nick
三、for + continue
for循环调出本次循环,进入下一次循环
# for+continue
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
if name == 'jason':
continue
print(name)
nick
tank
sean
四、for循环嵌套
外层循环循环一次,内层循环循环所有的。
# for循环嵌套
for i in range(3):
print(f'-----:{i}')
for j in range(2):
print(f'*****:{j}')
-----:0
*****:0
*****:1
-----:1
*****:0
*****:1
-----:2
*****:0
*****:1
五、for+else
for循环没有break的时候触发else内部代码块。
# for+else
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
print(name)
else:
print('for循环没有被break中断掉')
nick
jason
tank
sean
for循环没有break中断掉
六、for循环实现loading
import time
print('Loading', end='')
for i in range(6):
print(".", end='')
time.sleep(0.2)