Python 【for/while循环】
循环语句
for...in..循环语句
1.空房间
#元素(item) 可以当成是一个变量
for i in [1,2,3,4,5]: #变量i是“空房间”
print(i)
#有一群数字在排队办业务,也就是列表[1,2,3,4,5]
#它们中的每一个被叫到号的时候(for i in),就轮流进去一个空房间办业务
#每一个数字进去房间之后,都对计算机说:“喂,我要办这个业务:帮忙把我自己打印出来”,也就是print(i)
#然后计算机忠实的为每一个数字提供了打印服务,将1,2,3,4,5都打印在了屏幕上
2.一群等着办业务的人
列表/字典/字符串 【遍历】
for i in '吴承恩':
print(i)
吴
承
恩
a = str(100)
for i in a: #遍历数据结构
print(i)
1
0
0
3.业务流程
for子句
格式是【冒号】后另起一行,【缩进】写命令
——————————————————————————
range()函数
for i in range(3):
print(i)
0
1
2 #生成一个从0到x-1的整数序列,取头不取尾
for i in range(0,10,3):
print(i)
0
3
6
9 #从0数到9(取头不取尾),数数的间隔为3
###################################################################
while循环语句
在一定的条件下,按照流程办事
————————————————————————————————————
a = 0 #先定义变量a,并赋值
while a < 5: #设定一个放行条件:a要小于5,才能办事
a = a + 1 #满足条件时,就办事:将a+1
print(a) #继续办事:将a+1的结果打印出来
————————————————————————————————————
password = '' #变量password用来保存输入的密码
while password != '816':
password = input('请尝试输入密码:')
print('欢迎回家!')
#######################################################
两种循环对比
工作量确定用for
工作量不确定时用while
相同点
把一件事情做n遍,for循环的代码比较简洁
n = 0
while n < 7:
n = n+1
if n != 4: # 当num != 4,执行打印语句;等于4时不打印。
print(n)
for num in range(1,8):
if num != 4: # 当num != 4,执行打印语句;等于4时不打印。
print(num)
#############################################################
练习
小明、小红、小刚是同班同学,且坐在同一排,分别坐在第一位、第二位、第三位。
由于他们的身高都差不多,所以,老师计划让他们三个轮流坐在第一位。
每次换座位的时候,第一位变第三位,后面两位都往前一位。
students = ['小明','小红','小刚']
for i in range(3):
student = students[0]
del students[0] #students = students[1:]
students.append(student)
print(students)
['小红', '小刚', '小明']
['小刚', '小明', '小红']
['小明', '小红', '小刚']
students = ['小明','小红','小刚']
for i in range(3):
student1 = students.pop(0) #运用pop()函数,同时完成提取和删除。
students.append(student1) #将移除的student1安排到最后一个座位。
print(students)
['小红', '小刚', '小明']
['小刚', '小明', '小红']
['小明', '小红', '小刚']
扩展
pop()函数
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
可以将其理解为提取和删除的融合:
①提取:取到元素,对列表没有影响;
②删除:删除列表的元素。
而移除,则是同时做到取到元素,并且删除列表中的元素。
提取只取不删
>>> list1 = ['0','1','2','3']
>>> print(list1[3])
3
>>> print(list1)
['0', '1', '2', '3']
删除(del)只删不取
list1 = ['0','1','2','3']
del list1[3]
print(list1)
['0', '1', '2']
移除(pop)又取又删
list1 = ['0','1','2','3']
print(list1.pop()) # 默认删除最后一个元素,并返回该元素的值。
3
print(list1)
['0', '1', '2']
print(list1.pop(0)) # 也可指定删除某个元素,并返回该元素的值。
0
print(list1)
['1', '2']
#################################################################
用数据做判断
计算机的逻辑判断,只有两种结果,就是true
和false
。这个计算真假的过程,叫做【布尔运算】
true
和false
,也就叫做【布尔值】
布尔值和布尔运算
print(3<5) #括号内的是布尔运算
true #布尔值
两个数值做比较
直接用数值做运算
布尔值之间的运算
and、or、not、in、not in
list = [1,2,3,4,5]
a = 1
print(bool(a in list))
true
print(bool(a not in list))
false
涉及到的数据集合是字典【in】和【not in】就可以用来判断字典中是否存在某个【键】
dict = {'法国':'巴黎','日本':'东京','中国':'北京'}
a = '法国'
print(bool(a in dict))
true
###########################################################################
扩展
bool()函数
>>> print(bool(false))
false
>>> print(bool(0))
false
>>> print(bool(''))
false
>>> print(bool(none))
false
>>> print(bool(true))
true
>>> print(bool(1))
true
>>> print(bool('abc'))
true
#############################################################
四种新的语句
break
一般写作if...break
在循环内部使用
for i in range(5):
print('明日复明日')
if i==3: # 当i等于3的时候触发
break # 结束循环
#tab键和空格键不能同时混用
——————————————————————————————
continue
在循环内部使用
条件满足,触发continue语句,跳过之后代码,回到循环开始
for i in range(5):
print('明日复明日')
if i==3: # 当i等于3的时候触发
continue # 回到循环开头
print('这句话在i等于3的时候打印不出来')
明日复明日
这句话在i等于3的时候打印不出来
明日复明日
这句话在i等于3的时候打印不出来
明日复明日
这句话在i等于3的时候打印不出来
明日复明日
明日复明日
这句话在i等于3的时候打印不出来
——————————————————————————————————
pass
a = int(input('请输入一个整数:'))
if a > 100:
pass
else:
print('你输入了一个小于100的数字')
#当a>=100的时候,跳过,什么都不做
————————————————————————————————————
else
else不但可以和if配合使用,它还能跟for循环和while循环配合使用
for i in range(5):
a = int(input('请输入0结束循环,你有5次机会:'))
if a == 0:
print('你触发了break语句,导致else语句不会生效。')
break
else:
print('5次循环你都错过了,else语句生效了。')
当循环中没有碰到break语句,就会执行循环后面的else语句,否则就不会执行
应用
猜三次,三次都猜错了就结束循环
如果一次就猜对了,就结束循环
secret = 24
for i in range(3):
guess = input('guess which number is my secret:')
if int(guess) == secret:
print('正确!你很棒哦。') #输出结果
break
elif int(guess)>secret:
print('你猜的太大了,请重新猜猜~')
else:
print('你猜的太小了,请重新猜猜~')
else:
print('给你3次机会都猜不到,你失败了。')