在我们生活中有很多反复要做的事情,或者动作,我们称之为循环。在开发程序中也会有循环的事情要去做,就是需要反复的去执行某个代码,或者反复进行某种演算,直到达到某种条件的时候才会停止。在Python中我们使用的是while循环。
伪代码:
当 条件成立:
执行循环体
直到条件不成立
代码格式:
while ...: ...
示例代码:
n = 0 while n < 10: n = n + 1 # 或者 n += 1 print(n)
# 执行结果
1
2
3
4
5
6
7
8
9
10
在示例代码中,我们将n赋值初始值为0,在while循环体对n进行自增操作,直到n<10不成立,即n大于10,才结束循环。在循环中,我们要注意一定要有结束条件,不要造成无限循环,即死循环。
下面我们再看一个猜数字代码示例:
number = 47 while True: guess_number = input("请输入你要猜的数字:") # 因为通过input接收到参数是字符串,我们需要将字符串转换成数字,才可以进行比较操作 guess_number = int(guess_number) if guess_number == number: print("恭喜你猜对了!") break elif guess_number > number: print("猜的太大了!") else: print("猜的太小了!")
在猜数字示例代码中,我们将变量number赋值数字47,这里的循环内容是反复询问用户输入数字,进行比较,循环结束条件是:guess_number等于number,而跳出循环是由循环控制词break进行控制。在循环中控制循环的词除了break还有continue。break,是跳出整个循环,continue,是结束当前循环,继续执行下面的循环内容。
continue示例:
n = 0 while n<10: n += 1 if n == 6: continue print(n)
# 执行结果
1
2
3
4
5
7
8
9
10
在这个示例中,可以看出来,循环体对n不断进行自增操作,并打印出n的数值,当n等于6的时候,遇到了continue,跳出了当前的循环,没有打印出来,继续执行剩下的循环内容,直到条件不满足。
猜数字我们可以修改一下,在一定次数内才可以猜到,限制猜的次数。
number = 47 count = 0 while count < 3: guess_number = input("请输入你要猜的数字:") guess_number = int(guess_number) if guess_number == number: print("恭喜你猜对了!") break elif guess_number > number: print("猜的太大了!") else: print("猜的太小了!") count +=1
我们再增加一个条件,当猜的次数到达3次,退出循环,并告知退出原因。
number = 47 count = 0 while count < 3: guess_number = input("请输入你要猜的数字:") guess_number = int(guess_number) if guess_number == number: print("恭喜你猜对了!") break elif guess_number > number: print("猜的太大了!") else: print("猜的太小了!") count +=1 else: print("抱歉!你猜的次数太多了!")
这里我们只是增加了else代码块,这里的意思是当while中的循环,正常循环完毕,while的循环条件不成立,(即count大于等于0),没有经过break而结束,才会执行的代码块!
现在我们修改一下需求,当猜的次数达到3次的时候,我们询问用户是否继续,按‘n’退出,按任意键继续。请看示例:
number = 47 count = 0 while count < 3: guess_number = input("请输入你要猜的数字:") guess_number = int(guess_number) if guess_number == number: print("恭喜你猜对了!") break elif guess_number > number: print("猜的太大了!") else: print("猜的太小了!") count += 1 if count == 3: is_contin = input("是否继续?如果要退出,请输入‘n’。") if is_contin != 'n': count = 0
我们可以看到当每次循环3次,并且没有猜到的时候,程序就会询问用户,是否继续?如果输入的是‘n’,程序就会退出!
while我们暂时学到这里!