python多行输入
在编写程序时,通常需要从用户那里获取输入,以便程序可以根据输入的不同情况进行不同的处理。而一次只能接受一行输入显然是不够的,因此我们需要一种方法来实现多行输入。
input()函数
在介绍多行输入之前,先来回顾一下Python中的input()函数。这个函数用来获取用户的输入,它可以接受用户在控制台输入的任意内容,并将其作为字符串返回。例如:
name = input("请输入您的姓名:")
print("您好," + name)
运行结果:
请输入您的姓名:Alice
您好,Alice
input()函数会在接收到用户输入之前一直等待,直到用户按下回车键(Enter)才会结束,然后将输入的内容返回。因此,每次调用input()函数时,只能获取一行输入。
多行输入方法一
要实现多行输入,我们可以借助循环来逐行读取用户输入。例如,我们可以使用while
循环来接受用户输入的多行文本,直到用户输入一个空行为止。
lines = []
while True:
line = input()
if line:
lines.append(line)
else:
break
text = '\n'.join(lines)
print("您输入的文本是:")
print(text)
运行结果:
Hello World!
My name is Alice.
Python is awesome.
您输入的文本是:
Hello World!
My name is Alice.
Python is awesome.
这段代码首先创建了一个空的列表lines
,用于存储用户输入的每一行。然后,进入一个无限循环。循环内部,我们使用input()
函数获取用户输入的每一行,将其追加到lines
列表中。如果输入的是一个空行(即用户只按下了回车键),则跳出循环。最后,我们使用'\n'.join(lines)
将列表中的所有元素连接成一个字符串,并通过print()
函数打印出来。
多行输入方法二
除了input()
函数和循环,我们还可以使用sys.stdin
来实现多行输入。这个方法适用于在命令行下直接运行Python程序。
import sys
text = sys.stdin.read().strip()
print("您输入的文本是:")
print(text)
运行结果:
Hello World!
My name is Alice.
Python is awesome.
您输入的文本是:
Hello World!
My name is Alice.
Python is awesome.
在这个示例中,我们导入了sys
模块,并使用sys.stdin.read()
函数来一次性读取用户输入的所有内容。然后,使用strip()
函数去除输入前后的空白字符,并将结果存储在变量text
中。最后,通过print()
函数打印出来。
多行输入示例
下面通过一个具体的示例来演示如何使用多行输入。
import sys
text = sys.stdin.read().strip()
lines = text.split('\n')
n = int(lines[0])
numbers = [int(x) for x in lines[1:]]
print("您输入的数字是:")
print(numbers)
print("它们的和是:")
print(sum(numbers))
运行结果:
5
1
2
3
4
5
您输入的数字是:
[1, 2, 3, 4, 5]
它们的和是:
15
这段代码首先使用sys.stdin.read()
函数一次性读取用户输入的所有内容,并使用strip()
函数去除前后的空白字符。然后,将读取的内容按行分割成一个字符串列表,存储在变量lines
中。第一行是一个数字n
,表示接下来有n
个数字。我们可以将其转换为整数,并存储在变量n
中。从列表的第二行开始,是n
个整数,我们可以将其提取出来,并转换为整数列表numbers
。最后,通过print()
函数打印出numbers
列表和其元素的和。
通过以上示例,我们可以看到如何在Python中实现多行输入。无论是使用循环来逐行读取用户输入,还是使用sys.stdin.read()
函数一次性读取所有内容,我们都可以很方便地接受多行输入,并进行相应的处理。这为我们编写更灵活、更高效的程序提供了便利。