沉铝汤的破站

IS LIFE ALWAYS THIS HARD, OR IS IT JUST WHEN YOU'RE A KID

python-while循环和用户输入

0x01 input()

简介

让程序暂停运行,等待用户的输入,并可以接受一个参数用来提醒用户操作,获取输入后,将其存储到一个变量之中。

message = input("Tell me something:")
print(message)

用变量提示

当提示语句有多行时,可以使用变量

tips = "Tell me something"
tips += "\nhah"
message = input(tips)

使用int()来获取数值输入

使用函数input时,Python将把用户的输入解读为字符串,要获取数值,可以使用int()方法

height = input("How tall are you?")
height = int(height)
#...

0x02 while循环

和别的语言并无太大差别,就不具体写了

0x03 使用while循环处理列表和字典

for循环用来遍历十分有效,然而在for循环中修改元素却会使Python难以跟踪。要在遍历列表的同时对其修改,可使用while循环

在列表之间移动元素

# 首先,创建一个待验证用户列表
# 和一个用于存储已验证用户的空列表
 unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []
# 验证每个用户,直到没有未验证用户为止
# 将每个经过验证的列表都移到已验证用户列表中
 while unconfirmed_users: 
 	current_user = unconfirmed_users.pop()

 	print("Verifying user: " + current_user.title())
	confirmed_users.append(current_user)

# 显示所有已验证的用户
print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
	print(confirmed_user.title()) 

删除包含特定值的所有列表元素

pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)

while 'cat' in pets:
	pets.remove('cat')

print(pets) 

使用用户输入来填充字典

responses = {}
# 设置一个标志,指出调查是否继续
polling_active = True
while polling_active:
 # 提示输入被调查者的名字和回答
	name = input("\nWhat is your name? ")
 	response = input("Which mountain would you like to climb someday? ")

 # 将答卷存储在字典中
	responses[name] = response

 # 看看是否还有人要参与调查
	repeat = input("Would you like to let another person respond? (yes/ no) ")
 	if repeat == 'no':
 		polling_active = False

# 调查结束,显示结果
print("\n--- Poll Results ---")
for name, response in responses.items():
 	print(name + " would like to climb " + response + ".") 

为了加快进度,这里用了书上的代码