您在一行上获得一个整数NN。下一行包含NN空格分隔的整数。创建那些NN整数的元组。我们称之为TT。
计算hash(T)
并打印出来。
注意:此处hash()
是__builtins__
模块中的其中一项功能。
输入格式 第一行包含NN。下一行包含NN空格分隔的整数。
输出格式 打印计算值。
示例输入
2
1 2
示例输出
3713081631934410656
我的代码
a=int(raw_input())
b=()
i=0
for i in range (0,a):
x=int(raw_input())
c = b + (x,)
i=i+1
hash(b)
错误: 对于带有基数为10的int(),文字无效:' 1 2'
答案 0 :(得分:0)
我可以发现三个错误:
首先,你的for循环没有缩进。
其次,你不应该向i添加1 - for循环自动执行此操作。
三分之一 - 这就是抛出错误的地方 - 是raw_input
读取整行。如果您正在读取“1 2”行,则无法将其转换为int。
要解决此问题,我建议您这样做:
line = tuple(map(int,raw_input().split(' ')))
这将获取原始输入,将其拆分为列表,将此列表设置为整数,然后将此列表转换为元组。
事实上,你可以废弃整个for循环。您可以用两行代码回答这个问题:
raw_input()#To get rid of the first line, which we do not need
print hash(tuple(map(int,raw_input().split(' '))))
答案 1 :(得分:0)
输入格式
下一行包含NN空格分隔的整数
例如:1 2 3
,不是整数(因为空格),这就是为什么当你尝试int(raw_input())
时你的代码会抛出错误。你应该像其他答案所建议的那样使用split(' ')
来分隔每个整数。这将删除错误。
此外,没有必要使用i=i+1
,因为循环会处理它
答案 2 :(得分:0)
尝试以下代码:
if __name__ == '__main__':
n = int(input())
integer_list = map(int, input().split())
t = tuple(integer_list)
print(hash(t))
答案 3 :(得分:-1)
尝试使用此代码处理Python-3
if __name__ == '__main__':
n = int(input())
integer_list = map(int, input().split())
input_list = [int(x) for x in integer_list]
t = tuple(input_list)``
print(hash(t))