import sys
n = int(sys.stdin.readline())
for _ in range(n):
s = input()
print(s)
这是我在Python3.3中的代码。
我遇到输入问题。
如果我逐个输入我的输入 第一个'3'和第一个字符串和第二个字符串和第三个字符串。
没有问题。但是当我复制所有输入数据并粘贴它时,readline()函数会读取所有数据。我以为它会一直读到'\ n',
但它没有用。
以下是错误消息:
Traceback (most recent call last):
File "D:/Users/SUUSER/Desktop/a.py", line 3, in <module>
n = int(sys.stdin.readline())
ValueError: invalid literal for int() with base 10: '3\nasd\nfre\n345\n'
'3\nasd\nfre\n345\n'
它读取(n)
的所有数据但我只想阅读3。
我怎么能得到它?
答案 0 :(得分:0)
这看起来像一个平台问题。看来你的终端,Python解释器和粘贴源在行尾是不一致的;通过"D:"
在路径中的存在,我猜它是一个Windows平台,其中换行符传统上存储为'\r\n'
并输入为'\r'
(回车)。 Python遵循将新行处理为'\n'
(换行)的C / Unix传统。使用终端处理和剪贴板内容的错误组合,'\n'
字符将像任何其他字符一样传递,而不是结束一行。您可以尝试手动输入换行样式;回车符是Ctrl + M,换行符是Ctrl + J. Python也有support for different newline styles;我的猜测是,在您的特定终端中,sys.stdin
会以'\r'
个换行符打开。
答案 1 :(得分:0)
int无法将\ n转换为int值。
>>> print int('9\n')
9
>>>
>>> print int('9\n3')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '9\n3'
删除sys.stdin.readline(),如下面的代码:
import sys
n = 5 #length
for _ in range(n):
s = input()
print(int(s))