Python 中的 Input() 函数在输入过程中遇到回车,则一个输入结束。这不满足输入多行文本且行数也不确定的情况,当然也允许输入空行。
方法1:利用异常处理机制实现
lines=[]
while True:
try:
lines.append(input())
except:
break
print(lines)
在实际操作中,可以输入多行。当你输入最后一行并回车时,按组合键ctrl+D,表示EOF,即End of File,文件结束。此时,input()函数会遇到EOF异常。 Python的异常处理机制会捕捉到这个异常,并执行except部分中的语句。这个语句是break,所以会立即跳出while循环。这正是我们所需要的。
例如,输入:
12 345 3.14159回车
I am a student.回车
Hello, world!回车
在 IDE 中运行时,按 ctrl+D 结束多行输入。如果使用“python源代码文件名.py”模式在Windows命令行下运行,请按ctrl+Z组合键结束多行输入。
输出结果如下:
['12 345 3.14159', 'I am a student.', 'Hello, world!']
方法二:利用标准输入文件对象sys.stdin的readlines()函数实现
因为键盘是标准输入设备,所以计算机操作系统也将键盘视为一个文件。实际上,计算机操作系统将包括键盘、显示器、鼠标、打印机等在内的各种外围设备视为文件。 Python中键盘对应的文件对象是sys.stdin,所以可以使用sys.stdin.readlines()函数读取多行文本,直到遇到文件末尾,也就是EOF。
import sys
lines=sys.stdin.readlines()
print(lines)
输入同上,
输出如下:
['12 345 3.14159\n', 'I am a student.\n', 'Hello, world!\n']
可以看出方法二和方法一的输出结果略有不同,每行末尾都有一个'\n'字符(即回车)。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 从 python 列表中删除元素的三种方法10/05
- ♥ 如何理解python模块的搜索路径?11/07
- ♥ python3.6的pip在哪里12/15
- ♥ 初学者学C语言还是学Python10/31
- ♥ 如何使用python拆分08/15
- ♥ python如何确定字符串的结束位置08/22
内容反馈