我的python代码

时间:2016-03-07 06:33:23

标签: python-2.7

您在一行上获得一个整数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'

4 个答案:

答案 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))