美文网首页
第五章 用户输入与while循环

第五章 用户输入与while循环

作者: 永不熄灭的火焰_e306 | 来源:发表于2019-09-26 10:53 被阅读0次

6.1 函数input的工作原理

函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在

一个变量中,以方便你使用。

message = input("Tell me something, and I will repeat it back to you: ") 
print(message)
#输出:
#:Tell me something, and I will repeat it back to you: Hello everyone! 
#:Hello everyone!

函数input()接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做

注意:<u>input函数将用户的输入信息解读为字符串</u>

6.1.1 提示信息超过一行的显示处理--(字符串变量追加)

prompt = "If you tell us who you are, we can personalize the messages you see." 
prompt += "\nWhat is your first name? "         #字符串变量追加
name = input(prompt) 
print("\nHello, " + name + "!")
#输出:
If you tell us who you are, we can personalize the messages you see. 
What is your first name? Eric
Hello, Eric!

6.1.2 int()获取数值输入

注意:将数值输入用于计算和比较前,务必将其转换为数值表示

age = input("How old are you? ") 
How old are you? 21 
age = int(age) 
age >= 18 
True

6.1.3 求模运算 (“%”)

example:判断奇数偶数

number = input("Enter a number, and I'll tell you if it's even or odd: ") 
number = int(number) 
if number % 2 == 0: 
    print("\nThe number " + str(number) + " is even.") 
else: 
    print("\nThe number " + str(number) + " is odd.")
    
    
#输出结果:
Enter a number, and I'll tell you if it's even or odd: 42
The number 42 is even.

注意:在python2.7中的input()对应的是raw_input()

6.2 while 循环

6.2.1 使用while循环

current_number = 1 
while current_number <= 5: 
 print(current_number) 
 current_number += 1

6.2.2 让用户选择何时退出

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

6.2.3 break

prompt = "\nPlease enter the name of a city you have visited:" 
prompt += "\n(Enter 'quit' when you are finished.) " 
while True: 
    city = input(prompt) 
    if city == 'quit': 
        break
    else:
        print("I'd love to go to " + city.title() + "!")
#输出:
Please enter the name of a city you have visited: 
(Enter 'quit' when you are finished.) New York
I'd love to go to New York! 
Please enter the name of a city you have visited: 
(Enter 'quit' when you are finished.) San Francisco 
I'd 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循环。

6.2.4 continue

要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句

current_number = 0 
while current_number < 10: 
    current_number += 1 
    if current_number % 2 == 0: 
        continue 
        
 print(current_number)
#:
1 
3 
5 
7 
9

6.3 while循环处理列表和字典

6.3.1 列表之间移动元素

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

#输出:
Verifying user: Brian 
Verifying user: Alice 
The following users have been confirmed: 
Candace 
Brian 
Alice

由于Candace位于列表unconfirmed_users末尾,因此 其名字将首先被删除、存储到变量current_user中并加入到列表confirmed_users中。

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

问题:我们使用函数remove()来删除列表中的特定值,这之所以可行,是因为要删除

的值在列表中只出现了一次。如果要删除列表中所有包含特定值的元素,该怎么办呢?

while循环实现:

pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat'] 
print(pets) 
while 'cat' in pets: 
    pets.remove('cat') 
print(pets)

#输出:
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat'] 
['dog', 'dog', 'goldfish', 'rabbit']

6.3.3 使用用户输入来填充字典

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 + ".")

    
#输出:
What is your name? Eric
Which mountain would you like to climb someday? Denali
Would you like to let another person respond? (yes/ no) yes
What is your name? Lynn
Which mountain would you like to climb someday? Devil's Thumb 
Would you like to let another person respond? (yes/ no) no
--- Poll Results --- 
Lynn would like to climb Devil's Thumb. 
Eric would like to climb Denali.

相关文章

网友评论

      本文标题:第五章 用户输入与while循环

      本文链接:https://www.haomeiwen.com/subject/uozcyctx.html