Python提供两种循环控制结构:while循环结构和for循环结构
尽管他们都可以控制多个语句重复执行,但这两种结构从整体上看在语法上都相当于一个语句。
while循环和for循环的不同之处在于:
while循环结构以一个命题为True开始执行,当该命题为False时结束。
for循环结构不是以命题作为循环是否进行的根据,而是用一个变量——循环变量所指向的对象值得变化,来对循环进行控制。
1.while循环的句法
while 命题:
语句块(循环体)
#code01.py
n=int(input('请输入一个正整数:'))
power=1
i=0
while i
运行情况如下:
请输入一个正整数:6
2^0=1 2^1=2 2^2=4 2^3=8 2^4=16 2^5=32
2.用户输入循环控制
在游戏类程序中,当用户玩了一局后,是否还要继续,不能由程序自己控制,要由用户自己决定。这种循环结构继续条件是基于用户输入的。
#code02.py
#其他语句
…
isContinye='Y'
while isContinue=='Y' or isContinue=='y':
#主功能语句,如游戏相关语句
…
#主功能语句结束
isContinue=input('Enter Y or y to continue and N or n to quit:')
3.用哨兵值控制循环
哨兵值是一系列值中的一个特殊值。用哨兵值控制循环就是每循环一次,都要检测一下这个哨兵值是否出现。一旦出现,就退出循环。
#code03.py
total=highest=0
minimun=100
count=0
score=int(input('输入一个分数:'))
while(score!=-1):
count+=1
total+=score
highes=score if score > highest else highest
minimum=score if score < minimun else minimum
score=int(input('请输入下一个分数:'))
print('The highest score = {},minimum score = {}.average score = {}'.format(highest,minimum,total/count))
运行结果如下:
输入一个分数:86
请输入下一个分数:56
请输入下一个分数:86
请输入下一个分数:78
请输入下一个分数:98
请输入下一个分数:45
请输入下一个分数:78
请输入下一个分数:65
请输入下一个分数:89
请输入下一个分数:93
请输入下一个分数:-1
The highest score = 0,minimum score = 93.average score = 77.4
for循环是Python提供的功能最强大的循环结构。其最基本的句法结构如下:
for 循环变量 in range(初值,终值,递增值):
语句块(循环体)
这相当于如下while循环
循环变量=初值
while 循环变量 < 终值
循环体
循环变量 += 递增值
>>> for i in range(1,10):
print(i,end ='\t')
1 2 3 4 5 6 7 8 9
#code04.py
n = int(input('请输入一个正整数:'))
power = 1
for i in range(n + 1):
print('2^{}={},'.format(i,power),end ='\t')
power *=2
请输入一个正整数:5
2^0=1, 2^1=2, 2^2=4, 2^3=8, 2^4=16, 2^5=32,
实际上,for不一定依靠range(),它可以借助任何一个序列(例如字符串)实现迭代。
#code05.py
x ='I\'m playing Python.'
for i in x:
print(i,end = "")
I'm playing Python.