[英]Unable to use int(raw_input()) in python
我正在编码竞赛中尝试这个问题 。 我相信我已经解决了问题,但在接受意见时遇到了一些问题。 在这里帮助我:
输入
输入的第一行包含一个整数T,表示测试用例的数量。 T测试用例的描述如下。 每个测试用例由一行组成,其中包含两个用空格分隔的字符串R和S,表示两个配方。
现在,我已经对问题进行了编码,并且似乎可以解决该问题,但是每当我直接复制粘贴输入值时,都会出现此错误消息,因此无法解决问题
T= int(raw_input())
ValueError: invalid literal for int() with base 10:
'3\nalex axle\nparadise diapers\nalice bob'
每当我尝试提交问题时,都会收到错误消息。 可能是他们还在复制粘贴输入值并检查输出。 我的代码框架像这样
def whetherGranama(str1,str2):
return "NO"
#can't give the implementation out yet
T= int(raw_input())
ans=[]
for x in range(0,T):
s=raw_input()
s1,s2=s.split()
ans.append(whetherGranama(s1,s2))
for elem in ans:
print elem
如何解决\\n
错误? 我认为整个输入被视为一个字符串。
分割输入,使用分割列表提取整数
s = raw_input()
s = s.split()
T = int(s[0])
ans=[]
for st in s[1:]:
//Do the rest
首先拆分输入,然后转换int:
T, body = raw_input().split("\n", 1)
for x in xrange(int(T)):
...
这将拆分一次,并为您提供第一个数字项,然后为您的其余输入字符串。
如果整个输入都作为一个字符串读取,则可以尝试使用stdin.readline()
而不是raw_input
来捕获输入流:
from sys import stdin
T = int(stdin.readline())
但是由于这是一场编码竞赛,所以我假设速度至关重要。 由于IO操作的计算量很大,因此您实际上应该欢迎有机会一次读取所有输入。 换句话说,通常一次读取所有内容然后解析代码中的输入通常会更快。 我想在您的情况下,它将看起来像这样(假设它是设计使然一次出现的):
data = raw_input().splitlines()
#(or data = sys.stdin.read().splitlines() or data = list(sys.stdin.readlines()))
T = int(data[0])
S = (s.split() for s in data[1:])
是的,整个字符串被视为一个输入。 您可以简单地将输入存储为列表并使用该列表,而不是在循环中调用raw_input
,看起来像这样:
def whetherGranama(str1,str2):
return "NO"
#can't give the implementation out yet
input_lines = raw_input().split("\n")
T = int(input_lines[0])
ans=[]
for x in range(1,T):
s = input_lines[x]
s1,s2=s.split()
ans.append(whetherGranama(s1,s2))
for elem in ans:
print elem
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.