一、函数input()的工作原理:
有时候,提示可能超过一行,例如,你可能需要指出获取特定输入的原因。在这种情况下,
可将提示存储在一个变量中,再将该变量传递给函数input()。这样,即便提示超过一行,input()
语句也非常清晰。
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 + "!")
这个示例演示了一种创建多行字符串的方式。第1行将消息的前半部分存储在变量prompt中;
在第2行中,运算符+=在存储在prompt中的字符串末尾附加一个字符串。
最终的提示横跨两行,并在问号后面包含一个空格,这也是出于清晰考虑:
If you tell us who you are, we can personalize the messages you see.
What is your first name? Eric
Hello, Eric!
二、使用int()来获取数值输入:
为解决这个问题,可使用函数int(),它让Python将输入视为数值。函数int()将数字的字符
串表示转换为数值表示,如下所示:
>>> age = input("How old are you? ")
How old are you? 21
>>> age = int(age)
>>> age >= 18
True
如何在实际程序中使用函数int()呢?请看下面的程序,它判断一个人是否满足坐过山车的
身高要求:
height = input("How tall are you, in inches? ")
height = int(height)
if height >= 36:
print("\nYou're tall enough to ride!")
else:
print("\nYou'll be able to ride when you're a little older.")
How tall are you, in inches? 71
You're tall enough to ride!
注意:
如果你使用的是Python 2.7,应使用函数raw_input()来提示用户输入。这个函数与Python 3
中的input()一样,也将输入解读为字符串。
三、while 循环简介:
for循环用于针对集合中的每个元素都一个代码块,而while循环不断地运行,直到指定的条
件不满足为止。
current_number = 1
while current_number <= 5:
print(current_number)
current_number += 1
四、让用户选择何时退出
可使用while循环让程序在用户愿意时不断地运行,如下面的程序parrot.py所示。我们在其中
定义了一个退出值,只要用户输入的不是这个值,程序就接着运行:
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
五、使用标志
下面来在前一节的程序parrot.py中添加一个标志。我们把这个标志命名为active(可给它指
定任何名称),它将用于判断程序是否应继续运行:
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
active = True
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
print(message)
在while循环中,我们在用户输入后使用一条if语句来检查变量message的值。如果用户输入
的是'quit'(见),我们就将变量active设置为False,这将导致while循环不再继续执行。如果
用户输入的不是'quit'(见),我们就将输入作为一条消息打印出来。
六、使用break 退出循环
要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用
break语句。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
九、在循环中使用continue
要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,它
不像break语句那样不再执行余下的代码并退出整个循环。例如,来看一个从1数到10,但只打印
其中偶数的循环:
current_number = 0
while current_number < 10:
current_number += 1
if current_number % 2 == 0:
continue
print(current_number)
1
3
5
7
9
十、避免无限循环;
每个while循环都必须有停止运行的途径,这样才不会没完没了地执行下去。例如,下面的
循环从1数到5:
x = 1
while x <= 5:
print(x)
x += 1
但如果你像下面这样不小心遗漏了代码行x += 1,这个循环将没完没了地运行:
# 这个循环将没完没了地运行!
x = 1
while x <= 5:
print(x)
做最好的自己