做外贸有哪些好的网站有哪些内容,响应式网站wordpress摄影,娱乐平台网站开发免费,网页搜索如何屏蔽广告目录 编辑
7.2.2 让用户选择何时退出
parrot.py
7.2.3 使用标志
7.2.4 使用 break 退出循环
cities.py
7.2.5 在循环中使用 continue
counting.py
7.2.6 避免无限循环
counting.py
7.3 使用 while 循环来处理列表和字典
7.3.1 在列表之间移动元素
confirmed_user…目录 编辑
7.2.2 让用户选择何时退出
parrot.py
7.2.3 使用标志
7.2.4 使用 break 退出循环
cities.py
7.2.5 在循环中使用 continue
counting.py
7.2.6 避免无限循环
counting.py
7.3 使用 while 循环来处理列表和字典
7.3.1 在列表之间移动元素
confirmed_users.py
往期快速传送门在文章最后 7.2.2 让用户选择何时退出 可使用while循环让程序在用户愿意时不断地运行如下面的程序parrot.py所示。我们在其中 定义了一个退出值只要用户输入的不是这个值程序就接着运行 parrot.py 1 prompt \nTell me something, and I will repeat it back to you:
prompt \nEnter quit to end the program.
2 message
3 while message ! quit:message input(prompt)print(message) 在1处我们定义了一条提示消息告诉用户他有两个选择要么输入一条消息要么输 入退出值这里为quit。接下来我们创建了一个变量——message见2用于存储用户 输入的值。我们将变量message的初始值设置为空字符串让Python首次执行while代码行时有 可供检查的东西。Python首次执行while语句时需要将message的值与quit进行比较但此时 用户还没有输入。如果没有可供比较的东西Python将无法继续运行程序。为解决这个问题 我们必须给变量message指定一个初始值。虽然这个初始值只是一个空字符串但符合要求让 Python能够执行while循环所需的比较。只要message的值不是quit这个循环见3就会不 断运行。 首次遇到这个循环时message是一个空字符串因此Python进入这个循环。执行到代码行 message input(prompt)时Python显示提示消息并等待用户输入。不管用户输入是什么都 将存储到变量message中并打印出来接下来Python重新检查while语句中的条件。只要用户输 入的不是单词quitPython就会再次显示提示消息并等待用户输入。等到用户终于输入quit 后Python停止执行while循环而整个程序也到此结束 Tell me something, and I will repeat it back to you:
Enter quit to end the program. Hello everyone!
Hello everyone!
Tell me something, and I will repeat it back to you:
Enter quit to end the program. Hello again.
Hello again.
Tell me something, and I will repeat it back to you:
Enter quit to end the program. quit
quit 这个程序很好唯一美中不足的是它将单词quit也作为一条消息打印了出来。为修复这 种问题只需使用一个简单的if测试 prompt \nTell me something, and I will 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 will repeat it back to you:
Enter quit to end the program. Hello everyone!
Hello everyone!
Tell me something, and I will repeat it back to you:
Enter quit to end the program. Hello again.
Hello again.
Tell me something, and I will repeat it back to you:
Enter quit to end the program. quit 7.2.3 使用标志 在前一个示例中我们让程序在满足指定条件时就执行特定的任务。但在更复杂的程序中 很多不同的事件都会导致程序停止运行在这种情况下该怎么办呢 例如在游戏中多种事件都可能导致游戏结束如玩家一艘飞船都没有了或要保护的城市 都被摧毁了。导致程序结束的事件有很多时如果在一条while语句中检查所有这些条件将既 复杂又困难。 在要求很多条件都满足才继续运行的程序中可定义一个变量用于判断整个程序是否处于 活动状态。这个变量被称为标志充当了程序的交通信号灯。你可让程序在标志为True时继续运 行并在任何事件导致标志的值为False时让程序停止运行。这样在while语句中就只需检查一 个条件——标志的当前值是否为True并将所有测试是否发生了应将标志设置为False的事件 都放在其他地方从而让程序变得更为整洁。 下面来在前一节的程序parrot.py中添加一个标志。我们把这个标志命名为active可给它指 定任何名称它将用于判断程序是否应继续运行 prompt \nTell me something, and I will repeat it back to you:
prompt \nEnter quit to end the program.
1 active True
2 while active:message input(prompt)
3 if message quit:active False
4 else:print(message) 我们将变量active设置成了True见1让程序最初处于活动状态。这样做简化了while语 句因为不需要在其中做任何比较——相关的逻辑由程序的其他部分处理。只要变量active为 True循环就将继续运行见2。 在while循环中我们在用户输入后使用一条if语句来检查变量message的值。如果用户输入 的是quit见3我们就将变量active设置为False这将导致while循环不再继续执行。如果 用户输入的不是quit见4我们就将输入作为一条消息打印出来。 这个程序的输出与前一个示例相同。在前一个示例中我们将条件测试直接放在了while语句 中而在这个程序中我们使用了一个标志来指出程序是否处于活动状态这样如果要添加测试 如elif语句以检查是否发生了其他导致active变为False的事件将很容易。在复杂的程序中 如很多事件都会导致程序停止运行的游戏中标志很有用在其中的任何一个事件导致活动标志 变成False时主游戏循环将退出此时可显示一条游戏结束消息并让用户选择是否要重新玩。 7.2.4 使用 break 退出循环 要立即退出while循环不再运行循环中余下的代码也不管条件测试的结果如何可使用 break语句。break语句用于控制程序流程可使用它来控制哪些代码行将执行哪些代码行不执 行从而让程序按你的要求执行你要执行的代码。 例如来看一个让用户指出他到过哪些地方的程序。在这个程序中我们可以在用户输入 quit后使用break语句立即退出while循环 cities.py prompt \nPlease enter the name of a city you have visited:
prompt \n(Enter quit when you are finished.)
1 while True:city input(prompt)if city quit:break
else:print(Id love to go to city.title() !) 以while True打头的循环见将不断运行直到遇到break语句。这个程序中的循环不断 输入用户到过的城市的名字直到他输入quit为止。用户输入quit后将执行break语句导 致Python退出循环 Please enter the name of a city you have visited:
(Enter quit when you are finished.) New York
Id love to go to New York!
Please enter the name of a city you have visited:
(Enter quit when you are finished.) San Francisco
Id love to go to San Francisco!
Please enter the name of a city you have visited:
(Enter quit when you are finished.) quit 注意 在任何Python循环中都可使用break语句。例如可使用break语句来退出遍历列表或字典 的for循环。 7.2.5 在循环中使用 continue 要返回到循环开头并根据条件测试结果决定是否继续执行循环可使用continue语句它 不像break语句那样不再执行余下的代码并退出整个循环。例如来看一个从1数到10但只打印 其中偶数的循环 counting.py current_number 0
while current_number 10:
1 current_number 1if current_number % 2 0:continueprint(current_number) 我们首先将current_number设置成了0由于它小于10Python进入while循环。进入循环后 我们以步长1的方式往上数见1因此current_number为1。接下来if语句检查current_number 与2的求模运算结果。如果结果为0意味着current_number可被2整除就执行continue语句 让Python忽略余下的代码并返回到循环的开头。如果当前的数字不能被2整除就执行循环中 余下的代码Python将这个数字打印出来 1
3
5
7
9
7.2.6 避免无限循环 每个while循环都必须有停止运行的途径这样才不会没完没了地执行下去。例如下面的 循环从1数到5 counting.py x 1
while x 5:print(x)x 1 但如果你像下面这样不小心遗漏了代码行x 1这个循环将没完没了地运行 # 这个循环将没完没了地运行
x 1
while x 5:print(x) 在这里x的初始值为1但根本不会变因此条件测试x 5始终为True导致while循环没 完没了地打印1如下所示 1
1
1
1
--snip-- 每个程序员都会偶尔因不小心而编写出无限循环在循环的退出条件比较微妙时尤其如此。 如果程序陷入无限循环可按Ctrl C也可关闭显示程序输出的终端窗口。 要避免编写无限循环务必对每个while循环进行测试确保它按预期那样结束。如果你希 望程序在用户输入特定值时结束可运行程序并输入这样的值如果在这种情况下程序没有结束 请检查程序处理这个值的方式确认程序至少有一个这样的地方能让循环条件为False或让break 语句得以执行。 注意 有些编辑器如Sublime Text内嵌了输出窗口这可能导致难以结束无限循环因此不 得不关闭编辑器来结束无限循环。 7.3 使用 while 循环来处理列表和字典 到目前为止我们每次都只处理了一项用户信息获取用户的输入再将输入打印出来或作 出应答循环再次运行时我们获悉另一个输入值并作出响应。然而要记录大量的用户和信息 需要在while循环中使用列表和字典。 for循环是一种遍历列表的有效方式但在for循环中不应修改列表否则将导致Python难以 跟踪其中的元素。要在遍历列表的同时对其进行修改可使用while循环。通过将while循环同列 表和字典结合起来使用可收集、存储并组织大量输入供以后查看和显示。 7.3.1 在列表之间移动元素 假设有一个列表其中包含新注册但还未验证的网站用户验证这些用户后如何将他们移 到另一个已验证用户列表中呢一种办法是使用一个while循环在验证用户的同时将其从未验 证用户列表中提取出来再将其加入到另一个已验证用户列表中。代码可能类似于下面这样 confirmed_users.py # 首先创建一个待验证用户列表
# 和一个用于存储已验证用户的空列表
1 unconfirmed_users [alice, brian, candace]
confirmed_users []
# 验证每个用户直到没有未验证用户为止
# 将每个经过验证的列表都移到已验证用户列表中
2 while unconfirmed_users:
3 current_user unconfirmed_users.pop()print(Verifying user: current_user.title())
4 confirmed_users.append(current_user)
# 显示所有已验证的用户
print(\nThe following users have been confirmed:)
for confirmed_user in confirmed_users:print(confirmed_user.title()) 我们首先创建了一个未验证用户列表见1其中包含用户Alice、Brian和Candace还创 建了一个空列表用于存储已验证的用户。2处的while循环将不断地运行直到列表 unconfirmed_users变成空的。在这个循环中3处的函数pop()以每次一个的方式从列表 unconfirmed_users末尾删除未验证的用户。由于Candace位于列表unconfirmed_users末尾因此 其名字将首先被删除、存储到变量current_user中并加入到列表confirmed_users中见4。接 下来是Brian然后是Alice。 为模拟用户验证过程我们打印一条验证消息并将用户加入到已验证用户列表中。未验证用 户列表越来越短而已验证用户列表越来越长。未验证用户列表为空后结束循环再打印已验证 用户列表 Verifyi Verifying user: Candace
Verifying user: Brian
Verifying user: Alice
The following users have been confirmed:
Candace
Brian
Alice
Python核心知识点整理大全12-笔记-CSDN博客
往期快速传送门在文章最后