Python3.6中的输入错误

时间:2017-12-17 12:05:13

标签: python-3.x user-input

t = int(input())
while t:
    qu , pt = input().split(' ')
    qu = int(qu)
    pt = int(pt)
    sd = []
    for i in range(0,qu):
        x = int(input())  # I think I am getting problem in this part of 
        sd.append(x)
    hd , cw = 0 , 0
    diff = pt / 10
    cwk = pt / 2
    for i in range(0,qu):
        if sd[i] <= diff:
            hd += 1
        else:
            if sd[i] >= cwk:
            cw += 1
    if hd == 2 and cw == 1:
        print ('yes')
    else:
        print('no')
    t -= 1

当我尝试提供像&#39; 1 2 3&#39;我得到一个像这样的错误

Traceback (most recent call last):
  File "C:/Users/Matrix/Desktop/test.py", line 8, in <module>
    x = int(input())
ValueError: invalid literal for int() with base 10: '1 2 3'

为什么我会看到这个问题?我该如何纠正这个问题?

1 个答案:

答案 0 :(得分:0)

问题是你传递的是字符串而不是整数。当你键入&#34; 1 2 3,&#34;你留下了空间,被认为是人物。空格不能作为整数转换。如果您设置输入作为数字空格号空格号空格,那么我建议您将空白处的句子拆分为列表。

def setence_splitter(user_input):
# splits the input
words = text.split()

现在你有了列表,单词,每个单独的数字。您可以使用单词索引来调用每个单独的数字。第一个数字是单词[0],依此类推。