halo,大噶猴啊,今天有没有学习python啊,有没有给本身打气啊!来我先给大家打个气
python
上错图了,再来学习
今日洗脑金句: 坚持学习,学大学强,学出辉煌!3d
在开始讲解以前,请各位道友思考一个问题,什么是循环?code
诶,你知道循环是个什么东西,可是你就是说不出来!对象
好,那为何要有循环呢,由于咱们须要进行一些重复实现的操做,这个时候,循环就很好的实现了咱们的需求。blog
来,先看一下,while 的基础用法ci
while 条件 code 1 code 2 code 3 ... while True: print('*1'*100) print('*2'*100)
以上,只要符合了while 的条件,就会执行里面的代码块,并且只要知足条件,除非你用了其余方法,否则就会陷入死循环,这就是为何要少用while的缘由。input
哦吼,既然谈到了能跳出循环的方法,那么是什么呢,就是 “break” !cmd
break 就是打断的意思。他会终止掉当前层的循环,执行外面的代码。为何说当前层,由于while他也是能够嵌套的,你只能中断你所在的while,而不是所有的while,所以在使用 break 的时候,锁紧级别必定要写清楚,否则颇有可能会形成逻辑错误。博客
简单的 使用方法实例就不放上来了,由于他的代码毫无心义,直接上一个栗子吧
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') break else: print('username or password error') print('退出了while循环')
username: nick
password: 123
login successful
退出了while循环
俗话说,有鸡必有鸭,有鸭必有鹅。你可能没听过这句话,由于我五分钟前才创做的。
有了 break ,那就有continue,由于break 这个功能太霸道了,若是有人只想跳过此次循环呢?一个break给你全跳出来了,懵不懵啊 。这时候就有了 continue ,他只会跳过当前次循环。
上代码
n = 1 while n < 10: if n == 8: n += 1 # 若是注释这一行,则会进入死循环 continue print(n) n += 1
咱们能够看到 n 会随着循环的进行,而值变得愈来愈大,当他变为8时,就知足了 if ,就会执行 continue了 ,继续判断是否知足 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 True 是恒成立的,因此想要断开这个循环,就必定要用到 break 了。变量啊 输入啊就不用讲了,看不懂的,去看我前面的博客吧!
而后这里加了 if ,来判断你输入的帐号密码是否正确,条件知足后,开始执行内部代码块,这时候发现了他的内部代码块 又是一个 while 循环,也是一个死循环,他要你输入命令,而后加入了个 if,判断你输入的是不是 ‘q’ ,是的话,就执行 break 语句,跳出当前层的while,而后 紧接着又来了一个break,跳出了外层的while,并且不会执行 else ,注意 break执行以后,会直接杀死当前循环和else。
还有一种跳出循环的方式,可是你的while 条件得是 变量才行,看下面自行体会
tag = True while tag: 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 tag: cmd = input('请输入你须要的命令:') if cmd == 'q': tag = False print(f'{cmd} 功能执行') else: print('username or password error') print('退出了while循环')
username: nick
password: 123
login successful
请输入你须要的命令:q
q 功能执行
退出了while循环
为何有了 while 还要有个 for 呢,傻孩子,固然是由于 for 更好呀。
为何说 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
tank
sean
你很棒的用while 作到了!
那如今把这个字典里的数据也用while取出来吧!
info = {'name': 'nick', 'age': 19}
一会儿是不感受本身蒙了?
来看看用 for 怎么实现吧
info = {'name': 'nick', 'age': 19} for item in info: # 取出info的keys print(item)
name
age
name_list = ['nick', 'jason', 'tank', 'sean'] for item in name_list: print(item)
nick
jason
tank
sean
我刚看到 for 能这样用的时候也是蒙了的,个人理解是它直接把 容器类型数据里的 数据拿出来当循环数字了,在C 和 JAVA 里面是 for(i=0;i<10:i++) 这样的,在python里面就很牛逼的升级了,你的 循环数字直接就变成了你要取出来的数据了,因此循环次数是根据你容器类型数据的长度而定的。
果不其然有一些优秀的睿智青年冒出了和我当初同样的疑问,那意思我只能用for来拿容器数据了?
不不不,他比while更优秀,怎么可能这么弱?
for i in range(1, 10): # range顾头不顾尾 print(i)
1
2
3
4
5
6
7
8
9
一样的,顾头不顾尾。
name_list = ['nick', 'jason', 'tank', 'sean'] # for i in range(5): # 5是数的 for i in range(len(name_list)): print(i, name_list[i])
0 nick
1 jason
2 tank
3 sean
小小的栗子。len()的意思是返回对象的长度。
不用我说大家也知道了,while有的,for 全都有,像极了女孩子们的现男朋友,囊括了前男朋友的所有优势
和while 同样,跳出循环,同理,else 也不会执行。
name_list = ['nick', 'jason', 'tank', 'sean'] for name in name_list: if name == 'jason': break print(name)
ncik
和while同理,不作过多介绍了,直接上代码
name_list = ['nick', 'jason', 'tank', 'sean'] for name in name_list: if name == 'jason': continue print(name)
nick
tank
sean
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 i in range(3): print(f'-----:{i}') for j in range(2): print(f'***:{j}')
-----:0
**:0
**:1
-----:1
**:0
**:1
-----:2
**:0
**:1