设为首页 加入收藏

TOP

第七章 用户输入和while语句(一)
2017-10-10 08:26:22 】 浏览:7045
Tags:用户 输入 while 语句

    大多数编程都旨在解决最终用户的问题,为此通常需要从用户那里获取一些信息。例如,假设有人要判断自己是否到了投票的年龄,要编写回答这个问题的程序,就需要知道用户的年龄,这样才能给出答案。因此,这种程序需要让用户输入其年龄,再将其与投票年龄进行比较,以判断用户是否到了投票的年龄,再给出结果。

    在本章中,我们将学习如何接受用户输入,让程序能够对其进行处理。在程序需要一个名字时,我们需要提示用户输入该名字;程序需要一个名单时。我们需要提示用户输入一系列名字。为此,我们需要使用函数input()

    我们还将学习如何让程序不断地运行,让用户能够根据需要输入信息,并在程序中使用这些信息。为此,我们需要使用while循环让程序不断地运行,直到制定的条件不满足为止。

    通过获取用户输入并学会如何控制程序的运行时间,可编写出交互程序。

7.1  函数input()的工作原理

    函数input()让程序暂停运行等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便我们使用。

    例如,下面的程序让用户输入一些文本,再将这些文本呈现给用户:

message = input("Tell me something, and I'll repeat it back to you: ")
print(message)
函数input()接受一个参数:既要向用户显示的提示或说明,让用户知道该如何做。在这个示例中,Python运行第一行代码时,用户将看到提示Tell me
something, and I will repeat it back to you:。程序等待用户输入,并在用户按回车键后继续运行。用户输入存储在变量message中,就下来的print(
message)将输入呈现给用户:
Tell me something, and I'll repeat it back to you: Hello everyone
Hello everyone

7.1.1 编写清晰的程序
每当我们使用函数input()时,都应指定清晰而易于明白的指示,准确地指出我们希望用户提供什么样的信息——指出用户该输入任何信息的提示都行,
如下所示:
name = input("Please inter your name: ")
print("Hello," + name.title()+ "!")
通过在提示末尾(这里是冒号后面)包含一个空格,可将提示与用户输入分开,让用户清楚地知道其输入始于何处,如下所示:
Please inter your name: zeng mingzhu
Hello,Zeng Mingzhu !
有时候,提示可能超过一行,例如,我们可能需要指出获取特定输入的原因。在这种情况下,可能提示存储在一个变量中,再将该变量传递给函数input()
.这样,即便提示超过一行,input()语句也非常清晰。
greeter.py

prompt = "If you tell us who are you, we can personalize the messages you see."
prompt += "\nWhat is your first name? "

name = input(prompt)
print('\nHello, ' + name.title())
这个示例演示了一种创建多行字符串的方式。第1行将消息的前半部分存储在变量prompt中;在第2行中,运算符+=在存储在prompt中的字符串末尾附加一个
字符串。
最终的提示横跨两行,并在问号后面包含一个空格,这也是出于清晰考虑:
If you tell us who are you, we can personalize the messages you see.
What is your first name? eric

Hello, Eric

7.1.2 使用int()来获取数值输入
使用函数input()时,Python将用户输入解读为字符串。请看下面让用户输入其年龄的解释器会话:
>>> age = input("How old are you? ")
How old are you? 25
>>> age
'25'
>>> age > 10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()
用户输入的是数字21,但我们请求Python提供变量age的值时,它返回的是'21'--用户输入的数值的字符串表示。我们怎么知道Python将输入解读成了字符串
呢?因为这个数字用引号括起来了。如果我们只想打印输入,这一点没有问题;但如果我们试图将输入作为数字使用,就会引发错误:
>>> age = input("How old are you? ")
How old are you? 30
>>> print("I'm " + age + " years old.")
I'm 30 years old.
>>> age >= 30
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() >= int()
我们知道在我们进行字符串和数字相加的时候,经常会引发错误,提示我们字符串和数字不能相加,但是我们这里向程序输入了30,但是结果却可以相加,
这是因为input()函数将用户输入的数字当成了字符串,当我们用这个输入进行比较的时候会发现,也提示了错误,字符串不能够和数字进行比较。这点我们要
牢记,使用函数input()输入的都是字符串格式
我们试图将输入用于数值比较时,Python会引发错误,因为它无法将字符串和整数进行比较:不能将存储在age中的字符串'30'与数值30进行比较。
为解决这个问题,可使用函数int(),它让Python将输入视为数值。函数int()将数字的字符串表示转换为数值表示,如下所示:
>>> age = input("What's your age? ")
What's your age? 25
>>> age = int(age)
>>> age >= 30
False
>>> age <= 18
False
>>> age >= 18
True
在这个示例中,我们在提示时输入25后,Python将这个数字解读为字符串,但随后int()将这个字符串转换成了数值表示。这样Python就能运行条件测试了:
将变量age(它现在包含数值21)同18进行比较,看它是否大于或等于18.测试结
首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python基础-简介一 下一篇一个小型的文本分类系统-python(..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目