📅  最后修改于: 2023-12-03 15:23:43.577000             🧑  作者: Mango
在Python中,我们经常需要从用户那里获取多行输入。这种情况可能需要从用户那里读取一篇文章,或者是一个代码块。
Python提供了多种方法来获取多行输入,下面我们一一介绍这些方法。
这是一种最简单的方法,只需要写一个for循环来不停地读取输入,直到用户输入空行为止。代码如下:
lines = []
while True:
line = input()
if line:
lines.append(line)
else:
break
text = '\n'.join(lines)
print(text)
输出:
This is a multi-line input.
This is the second line.
And this is the third and final line.
另一种获取多行输入的方法是使用sys.stdin
。这种方法需要导入sys
模块,然后使用sys.stdin.readlines()
方法。注意,在使用这种方法之前,您需要告诉Python您已经完成了输入,这可以通过按Ctrl-D
(在Windows上是Ctrl-Z
)来完成。代码如下:
import sys
lines = sys.stdin.readlines()
text = '\n'.join(lines)
print(text)
输出:
This is a multi-line input.
This is the second line.
And this is the third and final line.
如果您打算从用户那里获取一个代码块,并且想要自动去除缩进(即优化输入格式),则可以使用textwrap.dedent()
方法。这种方法无需循环输入,直接读取所有的输入内容即可。代码如下:
import textwrap
code_block = textwrap.dedent('''\
def func(x):
if x % 2 == 0:
return "Even"
else:
return "Odd"
''')
print(code_block)
输出:
def func(x):
if x % 2 == 0:
return "Even"
else:
return "Odd"
最后一种获取多行输入的方法是使用递归函数。这种方法类似于第一种方法,但它使用递归函数来不停地读取输入,而不是使用循环。代码如下:
def multiline_input():
line = input()
if line:
return [line] + multiline_input()
else:
return []
lines = multiline_input()
text = '\n'.join(lines)
print(text)
输出:
This is a multi-line input.
This is the second line.
And this is the third and final line.
以上就是Python中获取多行输入的所有方法。希望这些方法能够帮助您处理多行输入的问题。