第六章 函数input和while循环
6.1 函数input()的工作原理
它让程序暂停运行,等待用户输入一些文本。获取用户输入后,将其存储在一个变量中,方便使用。
message = input("Tell me something, and i will repeat it back to you:")
print(message)
6.2 while循环简介
for循环用于针对集合中的每一个元素的一个代码块,而while循环不断地运行,直到指定的条件不满足为止。
current_number = 1
while current_number <= 5:
print(current_number)
current_number += 1
输出:1
2
3
4
5
6.2.1 让用户选择何时退出
prompt = "Tell me something, and i will repeat it back to you:"
prompt += "Enter 'quit' to end the program."
while message != 'quit':
message = input(prompt)
if message = 'quit':
print(message)
6.2.2 设置标志
在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量称为标志。
prompt = "Tell me something, and i will repeat it back to you:"
prompt += "Enter 'quit' to end the program."
activate = True #设置标志
while activate: #根据标志的状态来决定运行或停止
message = input(prompt)
if message = 'quit':
#如果用户输入的内容为quit,那么标志就变为Fasle
activate = False
else:
print(message)
6.2.3 使用break推出循环
需要立即退出循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break语句。
prompt = "Please enter your live city:"
prompt += "(Enter 'quit' when you are finished.)"
while True:
# 以while True打头的循环将不断运行
city = input(prompt)
if city == 'quit':
break
else:
print(city.title())
6.2.4 使用continue
要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句。
current_number = 0
while current_number < 10:
current_number += 1
if current_number % 2 == 0:
continue
print(current_number)
6.3 使用while循环来处理列表和字典
6.3.1 在列表之间移动元素
# 存储待验证用户
unconfirmed_users = ['chen', 'zed', 'maxin']
# 存储已验证用户
confirmed_users = []
while unconfirmed_users:
# 一直循环直到unconfirmed_users中没有元素
# 将待验证用户从末尾一个一个删除,并存储进变量中
current_user = unconfirmed_users.pop()
# 将验证过的用户添加到已验证用户的列表中
confirmed_users.append(current_user)
# 显示已验证的用户
for confirmed_user in confirmed_users:
print(confirmed_user.title())
6.3.2 删除包含特定值的所有列表元素
pets = ['cat', 'dog', 'duck', 'duck', 'fish', 'duck']
while 'duck' in pets:
# 只要列表pets中还有duck元素,while循环就一直运行,直到列表中没有duck元素
pets.remove('duck')
print(pets)
6.3.3 使用用户输入来填充字典
users = {
}
# 设置标志
activate = True
while activate:
name = input("你的名字叫什么?")
hobby = input("你的爱好是什么?")
# 将用户回答的内容添加进字典
users[name] = hobby
repeat = input("还有人要参加调查吗?yes/no")
if repeat == 'no':
activate = False
# 显示调查结果
for name, hobby in users.items():
print(name + "的爱好是:" + hobby)