1. while循环
之前学过的for循环适用于操作集合中每一个元素的代码块,而while循环可以不断运行,直到不满足条件为止。
1.1 使用while循环
首先我们编写一个简单的程序使用二while循环来数数,例如,下面的while循环从1数到5:
counting.py
current_number = 1
①while current_number <= 5:
print(current_number)
② current_number += 1
①处的代码表示,当变量current_number中的数值小于等于5则执行循环,注意后续的while循环代码块中的代码要在之前输入4个空格或者一个制表符。②处的代码表示循环每进行一次,变量current_number中的数值自增1。程序运行结果为:
1
2
3
4
5
while循环的使用范围如此之广,以至于只要你运行以后不会马上结束,而是重复进行操作的Python程序中,都多半会有while循环的身影。鉴于此,while循环是非常有用的。
1.2 让用户选择何时退出
可使用while循环让程序在用户意愿下运行,当用户想要退出时,只需要输入关键字就可以结束程序:
parrot.py
①prompt = "\nTell me something, and I'll repeat it back to you:"
②prompt += "\nEnter 'quit' to end the program."
③message = ""
④while message != "quit":
⑤ message = input(prompt)
print(message)
①、②处先编写提示,与上节所说到的操作相同,此处不再赘述。③处首先将空字符串存入变量message中,为之后进入循环结构做准备。④处定义while循环结构的运行条件为变量message中的值不为字符串 'quit'。⑤处将用户输入存入变量message中,提示为之前所编写的提示内容。最后打印出message中的值。
while循环结构运行过程为:(1)因为变量message中最开始存储了一个空字符串,因此满足循环条件,开始进入循环;(2)Python显示提示消息,这时用户可以进行输入,这个输入会被当做字符串存入变量message中;(3)打印message中的字符串。
Tell me something, and I'll repeat it back to you:
Enter 'quit' to end the program.Hello everyone!
Hello everyone!
Tell me something, and I'll repeat it back to you:
Enter 'quit' to end the program.Hello again!
Hello again!
Tell me something, and I'll repeat it back to you:
Enter 'quit' to end the program.quit
quit
程序按照我们的期望良好运行,美中不足的是,它将字符串'quit'也当作一条消息打印出来了。解决办法就是使用一条if语句进行输入测试:
prompt = "\nTell me something, and I'll repeat it back to you:"
prompt += "\nEnter 'quit' to end the program."
message = ""
while message != 'quit':
message = input(prompt)
if message != 'quit':
print(message)
此时输出结果已经完全满足我们的要求:
Tell me something, and I'll repeat it back to you:
Enter 'quit' to end the program.Hello everyone!
Hello everyone!
Tell me something, and I'll repeat it back to you:
Enter 'quit' to end the program.Hello again!
Hello again!
Tell me something, and I'll repeat it back to you:
Enter 'quit' to end the program.quit