Мой малыш плакал в полете, а сосед удивил своим поступком…

**Мой дневник. 12 октября.**

Сегодня мне пришлось лететь с двухмесячным сыном в Санкт-Петербург. Муж ждал нас там, а я одна, без родни, без подруг — только с маленьким Егоркой. Шесть часов в воздухе — как вечность.

Обычно мой мальчик тихий, но в этот раз он капризничал — то ли от давления, то ли от усталости. Плакал без перерыва, а я едва сдерживалась, чтобы не разреветься сама.

Когда стюардесса принесла обед, я даже не притронулась к еде. Руки заняты — то кормить, то пеленать, то укачивать.

Рядом сидел мужчина в строгом костюме — деловой, видимо. Седые волосы, усталое лицо. Вздыхал, бросал на нас недовольные взгляды, шептал что-то сквозь зубы. Становилось только хуже. Я готова была провалиться сквозь сиденье — казалось, вот-вот он взорвётся.

И тогда он неожиданно повернулся и сказал то, от чего я онемела:

— Дайте ребёнка. Я подержу, а вы хо# 9.4.2 处理用户输入

## 9.4.2 处理用户输入

与可以处理命令行参数一样,程序也可以处理用户输入。这样就可以在程序运行时向程序提供信息。

1.基本的输入

处理输入最直接的方法是使用input()函数。input()函数接受一个字符串参数,该参数用于作为向用户显示的提示信息。input()函数的返回值是用户输入的字符串。

*代码清单9-4-2.py*

«`python
#使用input()函数获取用户输入
name = input(«What is your name? «)
print(«Hello, » + name + «!»)
«`

在命令行中运行这个程序,程序会提示用户输入名字,然后打印出一条欢迎信息。

«`bash
$ python3 9-4-2.py
What is your name? John
Hello, John!
«`

2.类型转换

input()函数返回的是字符串,如果需要其他类型的数据,可以使用类型转换函数。例如,如果需要整数,可以使用int()函数;如果需要浮点数,可以使用float()函数。

*代码清单9-4-2-2.py*

«`python
#使用input()函数获取用户输入,并将其转换为整数
age = input(«How old are you? «)
age = int(age)
print(«You are » + str(age) + » years old.»)
«`

在命令行中运行这个程序,程序会提示用户输入年龄,然后打印出一条信息。

«`bash
$ python3 9-4-2-2.py
How old are you? 25
You are 25 years old.
«`

3.处理多个输入

如果需要获取多个输入,可以使用多个input()函数,或者使用split()方法将输入的字符串分割成多个部分。

*代码清单9-4-2-3.py*

«`python
#使用input()函数获取多个用户输入
name = input(«What is your name? «)
age = input(«How old are you? «)
print(«Hello, » + name + «! You are » + age + » years old.»)
«`

在命令行中运行这个程序,程序会提示用户输入名字和年龄,然后打印出一条信息。

«`bash
$ python3 9-4-2-3.py
What is your name? John
How old are you? 25
Hello, John! You are 25 years old.
«`

4.使用split()方法处理多个输入

如果需要同时获取多个输入,可以使用split()方法将输入的字符串分割成多个部分。split()方法默认使用空格作为分隔符,但也可以指定其他分隔符。

*代码清单9-4-2-4.py*

«`python
#使用split()方法处理多个用户输入
name, age = input(«Enter your name and age: «).split()
print(«Hello, » + name + «! You are » + age + » years old.»)
«`

在命令行中运行这个程序,程序会提示用户输入名字和年龄(用空格分隔),然后打印出一条信息。

«`bash
$ python3 9-4-2-4.py
Enter your name and age: John 25
Hello, John! You are 25 years old.
«`

5.处理文件输入

除了从命令行获取输入,程序还可以从文件中读取输入。这在处理大量数据时非常有用。

*代码清单9-4-2-5.py*

«`python
#从文件中读取输入
with open(«input.txt», «r») as file:
data = file.read()
print(data)
«`

在命令行中运行这个程序,程序会读取input.txt文件的内容并打印出来。

«`bash
$ python3 9-4-2-5.py
Hello, World!
«`

6.处理命令行参数和用户输入的结合

有时候,程序需要同时处理命令行参数和用户输入。例如,程序可能需要从命令行获取配置信息,然后根据用户输入执行不同的操作。

*代码清单9-4-2-6.py*

«`python
#处理命令行参数和用户输入的结合
import sys

if len(sys.argv) > 1:
name = sys.argv[1]
else:
name = input(«What is your name? «)
print(«Hello, » + name + «!»)
«`

在命令行中运行这个程序,程序会首先检查是否有命令行参数,如果有则使用命令行参数作为名字,否则提示用户输入名字。

«`bash
$ python3 9-4-2-6.py John
Hello, John!
«`

«`bash
$ python3 9-4-2-6.py
What is your name? John
Hello, John!
«`

7.处理异常输入

用户输入可能会引发异常,例如当期望输入整数时用户输入了字符串。为了避免程序崩溃,可以使用try-except块来捕获异常。

*代码清单9-4-2-7.py*

«`python
#处理异常输入
try:
age = int(input(«How old are you? «))
print(«You are » + str(age) + » years old.»)
except ValueError:
print(«Please enter a valid number.»)
«`

在命令行中运行这个程序,如果用户输入的不是整数,程序会捕获异常并提示用户输入有效的数字。

«`bash
$ python3 9-4-2-7.py
How old are you? twenty-five
Please enter a valid number.
«`

8.处理输入循环

有时候,程序需要不断提示用户输入,直到用户输入特定的值为止。这可以通过循环来实现。

*代码清单9-4-2-8.py*

«`python
#处理输入循环
while True:
age = input(«How old are you? (Enter ‘quit’ to exit) «)
if age == ‘quit’:
break
try:
age = int(age)
print(«You are » + str(age) + » years old.»)
except ValueError:
print(«Please enter a valid number.»)
«`

在命令行中运行这个程序,程序会不断提示用户输入年龄,直到用户输入’quit’为止。

«`bash
$ python3 9-4-2-8.py
How old are you? (Enter ‘quit’ to exit) 25
You are 25 years old.
How old are you? (Enter ‘quit’ to exit) twenty-five
Please enter a valid number.
How old are you? (Enter ‘quit’ to exit) quit
«`

9.处理密码输入

有时候,程序需要获取用户的密码或其他敏感信息。为了防止密码显示在屏幕上,可以使用getpass模块的getpass()函数。

*代码清单9-4-2-9.py*

«`python
#处理密码输入
from getpass import getpass

password = getpass(«Enter your password: «)
print(«Password entered.»)
«`

在命令行中运行这个程序,程序会提示用户输入密码,但密码不会显示在屏幕上。

«`bash
$ python3 9-4-2-9.py
Enter your password:
Password entered.
«`

10.处理多行输入

有时候,程序需要获取多行输入。可以使用循环来不断读取输入,直到用户输入特定的结束标记。

*代码清单9-4-2-10.py*

«`python
#处理多行输入
print(«Enter your text (enter ‘end’ to finish):»)
lines = []
while True:
line = input()
if line == ‘end’:
break
lines.append(line)
print(«You entered:»)
for line in lines:
print(line)
«`

在命令行中运行这个程序,程序会

Оцените статью
Мой малыш плакал в полете, а сосед удивил своим поступком…
Незнакомец в доме: решение, изменившее мою жизнь