1、使用while循环
while循环是使代码不断的运行,直到指定的条件不满足为止。例如:
num = 1
while num <= 3:
print(num)
num = num 1
首先我们将num设置为1,从而指定从1开始数。接下来while循环被设置成这样,只要num小于3,就一直执行这个循环,循环中的代码时打印num的值,如果我们没有设置num = num 1的话,这个循环就会一直打印1,不会停止。我们使用了num=num 1后这个循环就会从1开始打印,然后将其值加1,知道超过3为止。
2、让用户选择何时退出
使用while循环时,我们要让程序在用户愿意时不断的运行,但是只要用户输入某个值时循环就退出,如下:
① anything = "\n告诉我一些东西,我将打印出来:"
anything = "(\n输入“退出”结束游戏):"
② message = ""
③ while message != "退出":
message = input(anything)
print(message)
在①处,我们定义了一条提示消息,告诉用户他有两个选择:要么输入一些东西,要么输入退出值“退出”。接下来创建了一个变量---message(见②),用于存储用户输入的值。我们将变量message的初始值设置为空字符串“”,让Python首次执行while代码时有可供检查的东西。Python首次执行while语句是,需要将message的值与“退出”进行比较,但是此时用户还没有输入。如果没有可供比较的东西,Python将无法继续运行程序。为解决这个问题,我们必须给变量message指定一个初始值。虽然这个初始值只是一个空字符串,当符合要求,让Python能够执行while循环所需的比较。只要message的值不是“退出”,这个循环就会不断运行。
告诉我一些东西,我将打印出来,(
输入“退出”结束游戏):1
1
告诉我一些东西,我将打印出来,(
输入“退出”结束游戏):123
123
告诉我一些东西,我将打印出来,(
输入“退出”结束游戏):1234
1234
告诉我一些东西,我将打印出来,(
输入“退出”结束游戏):退出
退出
上面这个程序很好,唯一美中不足的就是,他将“退出”也作为一条消息打印出来了,为了修复这个问题,只需要一个简单的if测试:
anything = "\n告诉我一些东西,我将打印出来,"
anything = "(\n输入“退出”结束游戏):"
message = ""
while message != "退出":
message = input(anything)
if message != "退出":
print(message)
else:
print("程序结束")
当message不等于“退出”时,程序才答应message的内容,否则将打印“程序结束”。
3、使用标志
在前面的示例中,我们让程序在满足指定条件时就执行特定的任务。但是在更复杂的程序中,很多不同的时间都会导致程序停止运行;在这种情况下,该怎么办呢?
例如,在游戏中,多种事件都可能导致游戏结束,如玩家一架飞机都没有了或者所保护的基地被摧毁了等等,如果在一条while语句中检查所有条件,将会既复杂又困难。
在要求很多条件都满足才继续运行的程序中,可以定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志,充当了程序的交通信号灯。你可以让程序在标志位True时继续运行,并在任何事件导致标志值为False时让程序停止运行。这样while语句中就只需要检查一个条件----标志的当前值是否为True,并将所有测试都放在其他地方,从而让程序变得更为整洁。
下面我们来试试在程序中添加一个标志:
anything = "\n告诉我一些东西,我将打印出来:"
anything = "\n输入“退出”结束游戏。"
active = True
while active:
message = input(anything)
if message == "退出":
active = False
print("哈哈,游戏结束啦,再接再厉")
else:
print(message)
我们把标志命名为active(可以给他指定任何名称),用于判断程序是否继续运行,在while循环中,我们在用户输入后使用if语句来检查变量message的值。如果用户输入的为“退出”,我们将active设置为False,这将导致while循环不再继续执行。如果输入的不是“退出”,我们将其作为一条消息打印出来。
4、使用break退出循环
要立即退出while循环,不再运行循环中余下的代码,也不关条件测试的结果如何,可以使用break语句。break语句用于控制程序流程,可使用他来控制哪些代码将执行,哪些代码将不执行,从而让程序按照你的要求执行你要执行的代码。
例如:
name = "\n请输入你去过的城市,"
name = "\n(如果没有,请输入“退出”):"
while True:
city = input(name)
if city == "退出":
break
else:
print("我去过的城市是" city "。")
这个程序中的循环让用户不断输入去过的城市名字,直到他输入“退出”为止。用户输入“退出”后,将执行break语句,导致Python退出循环,以while True打头的循环将不断运行,直到遇见break语句。运行结果如下:
请输入你去过的城市,
(如果没有,请输入“退出”):北京
我去过的城市是北京。
请输入你去过的城市,
(如果没有,请输入“退出”):南京
我去过的城市是南京。
请输入你去过的城市,
(如果没有,请输入“退出”):退出
5、在while循环中使用continue
要返回到循环的开头,并根据条件测试结果决定是否继续执行代码,可使用continue语句,它不像break语句那样不再执行余下的代码并退出整个循环,而是返回到循环的开头,重新执行循环。例如:
num = 1
while num < 10:
num = num 1
if num %2 == 0:
continue
print(num)
我们首先将num设置为1,由于他小于10,Python将进入while循环。进入循环后我们以每次加1的方式往上数,因此num为2,接下来if语句开始检查num与2的求模运算。如果结果为0(意味着num能被2整除),就执行continue语句,让Python忽略余下的语句,并返回到循环的开头。第二次循环时num为3,不能被2整除,Python就执行下一行代码,将3打印出来:
3
5
7
9
6、避免无限循环
每个while循环都必须有停止运行的途径,否则就会无限循环下去,例如上面的例子我们减少一行代码:
num = 1
while num < 10:
print(num)
我们将num = num 1这行代码去掉,这样我们的循环就会无止境的一直打印1这个数字,这是因为,我们num的初始值为1,然后开始执行while循环,只要num < 10,就会无止境的循环下去。