【问题标题】:How do I fix my code: ValueError: invalid literal for int() with base 10: '' [duplicate]如何修复我的代码:ValueError:int() 的无效文字,基数为 10:'' [重复]
【发布时间】:2021-06-02 02:07:42
【问题描述】:

我正在编写一个计算两个输入数字之和的程序。

但是'set = int(input())',这句话导致ValueError: invalid literal for int() with base 10: ''

我不知道怎么解决。

我英语说得不好。 如果你不明白我的话,请告诉我。我会重写问题。

这是我的代码:

T = int(input())

for i in range(T):
    set = int(input())
    A = int(set.split()[0])
    B = int(set.split()[1])
    print(A+B)

【问题讨论】:

  • 你必须在提示符处输入一个数字。
  • 如果您将set 设置为int,那么您将无法调用split()。此外,您可能不应该分配给set。这是一个内置类型的名称。
  • 还有一个建议:即使您的英语说得不太好,您也可能想阅读Style Guide for Python Code。变量应该小写并且有有意义的名字。
  • 谢谢我解决了问题
  • @ubaidh 这在上面的代码中永远不会发生......

标签: python valueerror


【解决方案1】:

从代码看来,您在 set 变量中输入了两个用空格分隔的数字。 如果是这种情况,并且您将 int(input()) 更改为 input(),它应该可以工作。

【讨论】:

    【解决方案2】:

    您不能以这种方式拆分 int,即您不能在 set 中传递两个 int,并且拆分不适用于 int。 1)要么从集合中删除int

    T = int(input())
    for i in range(T):
        set = input()
        A = int(set.split()[0])
        B = int(set.split()[1])
    print(A+B)
    

    2)使用一个衬垫

     A, B = list(map(int,input().split()))
    

    【讨论】:

      【解决方案3】:

      根据你的代码猜测set = int(input())这里应该输入“1 2”这样的字符串,“1 2”不能转换成int所以报错。

      T = int(input())
      
      for i in range(T):
          set = input()
          A = int(set.split()[0])
          B = int(set.split()[1])
          print(A+B)
      

      这应该可行。

      【讨论】:

        【解决方案4】:

        由于split 对您需要稍后转换的字符串进行操作。你可以试试这个

        T = int(input())
        for i in range(T):
            x = list(map(int, input().split()))
            A = x[0]
            B = x[1]
            print(A + B)
        

        这会拆分输入字符串,然后将其映射到函数int,即通过将int() 应用于所有项目来创建一个新列表。您可以添加一些错误处理,因为如果仅提供一个或什至没有提供值,则此代码将失败。如果输入不能转换为整数,它也会失败。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-17
          • 2021-08-06
          • 2018-09-05
          • 2021-12-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-17
          相关资源
          最近更新 更多