python 中的另一种循环,和for循环相同点在于都能循环做一件重复的事情,
不同点在于 for 循环会在可迭代的序列被穷尽的时候停止,while则是在条件不成立的时候停止
while的作用就是:只要..条件成立,就一直做....
# Python的while循环与if条件分支类似,不同的是,只要条件为真, while循环会一直重复执行一段代码,这段代码称为循环体。
"""
while 条件:
循环体
"""
while 1<3:
print('1 小于 3')
"""
执行该段代码后,需按暂停键停止运行
因为在while 后面的表达式是永远成立的,所以print 会一直执行下去,直至你的CPU过热。
这种条件永远为True的循环,我们称之为死循环
"""
打印结果:
1 小于 3
1 小于 3
1 小于 3
1 小于 3
1 小于 3
1 小于 3
i = 0
sum = 0
while i <= 100:
sum += i
i += 1
print(sum)
sum=0
i=0
while i<100:
sum+=i
i+=1
print(i)
print(sum)
"""
如果上面代码的循环体中缺少i += 1语句,循环将永远也不会退出 (除非将程序强制关闭),也称为死循环。
"""
打印结果:
101
5050
100
4950
"""
在循环过程中制造某种可以使循环停下来的条件,while循环语句的后面加上一个if,if下面的作用就是告诉如果条件成立则停下来。
"""
count = 0
while True:
print('重复这行')
count +=1
if count ==5:
break
打印结果:
重复这行
重复这行
重复这行
重复这行
重复这行
"""
while和for循环语句的后面也可以加上一个else语句,表示当 条件不成立的时候执行的内容
while 条件:
循环体
else:
条件不成立时执行的内容
"""
bingo='清蒸'
answer=input('鲫鱼清蒸好吃还是红烧好吃:')
while True:
if bingo==answer:
break
else:
answer=input('答错了,请重试新输入(答案对了才能推出游戏):')
print('恭喜你答对了')
打印结果:
鲫鱼清蒸好吃还是红烧好吃:红烧
答错了,请重试新输入(答案对了才能推出游戏):清蒸
恭喜你答对了
# 给登录函数增加一个新功能:输入密码错误超过3次,就禁止再次输入密码
"""
在这里while 可以理解成是if循环版,可以使用while-else结构,而在while代码块中又存在着第二层的逻辑判断,这其实构成了嵌套逻辑
"""
password_list = ['*#*#','123456']
def account_login():
"""增加了while循环,如果tries > 0 这个条件成立,那么便可输入密码,从而执行辨别密码是否正确的逻辑判断 """
tries = 3
while tries > 0:
password = input('请输入密码: ')
correct_password =password == password_list[-1]
reset_password =password == password_list[0]
if correct_password:
print('恭喜您登录成功')
elif reset_password:
new_password = input('请输入新密码: ')
password_list.append(new_password)
print('密码修改成功')
account_login()
else:
"""当密码输入错误时,可以尝试的次数tries减少1"""
tries = tries -1
print(tries,'tries left')
else:
"""while循环条件不成立时,就意味着尝试次数用光,告知用户禁止输入"""
print('禁止输入')
account_login()
打印结果:
请输入密码: 888
2 tries left
请输入密码: 999
1 tries left
请输入密码: *#*#
请输入新密码: 888888
密码修改成功
请输入密码: 777
2 tries left
请输入密码: 999
1 tries left
请输入密码: 888
0 tries left
禁止输入
# 设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给他们命名
def creat_text():
path = '/Users/issuser/Desktop/'
for name in range (1,11):
with open(path + str(name) + '.txt','w') as text:
# text.write(str(name))
text.close()
print('Done')
creat_text()
打印结果:
Done
Done
Done
Done
Done
Done
Done
Done
Done
Done
# 设计一个复利计算函数 invest(),它包含三个参数:amount(资金),rate(利率),time(投资时间),输入每个参数后调用函数,
# 应该返回每一年的资金总额。它看起来就应该像这样(假设利率为5%)
def invest(amount,rate,time):
print('本金:{}'.format(amount))
for time in range(1,time + 1):
amount = amount * (1+ rate)
print('year{}:${}'.format(time,amount))
invest(100,0.25,3)
invest(2000,0.025,5)
打印结果:
本金:100
year1:$125.0
year2:$156.25
year3:$195.3125
本金:2000
year1:$2050.0
year2:$2101.25
year3:$2153.78125
year4:$2207.62578125
year5:$2262.8164257812496
# 打印1~100内的偶数
def number():
for number in range(1,101):
if number % 2 ==0:
print(number)
number()
打印结果:
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
92
94
96
98
100