【问题标题】:python invalid literal errorpython无效文字错误
【发布时间】:2011-03-16 04:08:58
【问题描述】:

所以我有这个代码

data = input()
m = data.split(',')

for i in range(0, len(m)):

    print(int(m[i]) )

但是当我运行它并输入“1,2,3”时,我得到了这个错误:

    print(int(m[i]))
ValueError: invalid literal for int() with base 10: '"1'

我做错了什么?

使用 python 3

【问题讨论】:

    标签: python input


    【解决方案1】:

    当您有代码时,您输入的输入应该是用逗号分隔的数字。您不必包含引号,只需输入 1,2,3 即可。仅当您编写实际代码编写字符串文字时才需要引号。在这种情况下,您只是接受输入,它已经是字符串。

    问题是您按字面意思输入"1,2,3",它会尝试解析字符串的第一个int,"1,这是无效的。

    【讨论】:

      【解决方案2】:

      您似乎输入了文字引号 (") 作为输入的一部分; int() 不知道如何解析这些。你需要先把它们去掉:

      data = input().strip('"')
      

      【讨论】:

        【解决方案3】:

        您的输入中似乎有一个额外的 " 字符。 int() 只会转换仅由所选基数中的数字组成的字符串(默认基数为 10,因此它接受 [0-9])。如果字符串输入中出现任何其他字符,则会引发此错误。

        【讨论】:

          【解决方案4】:

          您对input的意见:

          "1,2,3"
          

          适用于 Python 2 input。 Python 3 input 就像 Python 2 raw_input 一样,它的所有输入都已被视为字符串。

          【讨论】:

            猜你喜欢
            • 2023-03-31
            • 2016-10-05
            • 1970-01-01
            • 2016-05-31
            • 1970-01-01
            • 2015-12-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多