ValueError:int()的基数为10的无效文字:'1 2 3 4 5'

时间:2017-12-29 20:47:47

标签: python

这是代码只是为了找到某种产品:在这个数组中打印所有数字的产品Modulo 10 ^ 9 + 7

         n=int(input())
            answer=1
            b=10**9
            array_1=[]
            for i in range(n):
                array_1.append(int(input()))
            for j in range(n):
                answer=(answer*array_1[j])% (b+7)
            print(answer)

这个我在python 3中的代码在jupyter笔记本中正常工作,但是在                 python(3.5.2)它显示输入5的错误,然后是1 2 3 4 5

        Execution failed.
        ValueError: invalid literal for int() with base 10 : '1 2 3 4 5'

        Stack Trace:


        Traceback (most recent call last):
        File "/hackerearth/PYTHON3_46/s_ad.py3", line 16, in 
        array_1.append(int(input()))
        ValueError: invalid literal for int() with base 10: '1 2 3 4 5'

请有人帮我解决这个错误,因为我是python中的新手

2 个答案:

答案 0 :(得分:1)

  

array_1.append(int(input()))通过使用这个我尝试获取int的数组   从用户输入逐个取值 -

但看起来您将一个接一个地输入数字作为单个字符串,每个数字用空格分隔。在这种情况下,您应该使用拆分来获取单个数字:

array_of_ints = [int(num) for num in input().split()]
array_1 += array_of_ints

如果您尝试逐个输入数字,您的代码似乎是正确的。你只需要确保你确实逐个输入数字。 即1然后按Enter键,2然后按Enter键,依此类推......

答案 1 :(得分:0)

我不完全确定您要在此处实现的目标,但仅仅基于查看它,您的代码将不会接受1 2之后的任何输入

如果从终端运行,则每个输入之间应该有一个新行,即

./your_program.py
4
4
3
2
1