【问题标题】:Error: Can't Assign to Function Call错误:无法分配给函数调用
【发布时间】:2015-03-27 17:06:58
【问题描述】:

我正在尝试制作一个简单的加法计算器,但遇到了问题。

print('welcome to calculator')      # Print opening message
print(' ')  #Spacer
int(sum1) = input('number') # Get input for first number, this variable later becomes the sum : ERROR: Can't assign to function call
int(add1) = input('number') # Get input for second number : Assumed error for this line as well
sum1 = sum1 + add1      # Add the variables together to get the sum
print(str(sum1))    # Change the sum to a string and print it
loop = 1    # Set loop to True
while loop == 1:    # Continue the program until user inputs add1 as '0'
    int(add1) = input('number')     # Get value for add1
    if add1 == 0:   # Stop the program when add1 is equal to 0
        loop = 0    # Set loop to false
        break
    sum1 = sum1 + add1  # Add the variables together to get the new sum
    print(str(sum1))    # Change the sum to a string and print it
print('done!')  # Print ending message

这里的错误在第三行(我假设第四行也会有错误)。我本来只是有

sum1 = input('number')

但是变量 sum1 被视为一个字符串,所以在第 5 行中,当变量 sum1 和 add1 被添加时,它会将字符串添加到彼此的末尾。 (例如:15 + 10 = 1510)

当我将变量转换为整数时我做错了什么,或者这是解决问题的错误方法?

【问题讨论】:

  • 这是 Python 2 还是 Python 3?如果是 python 2,你应该使用raw_input() 而不是input()

标签: python string variables integer calculator


【解决方案1】:

您正在尝试分配给int() 函数调用的结果:

int(sum1) = input('number')

= 符号左侧的所有内容都应该是存储右侧生成的结果的目标,并且您要求 Python 将某些内容存储在 int(sum1) 中。

如果您想将input() 调用的结果转换为整数,则需要将其应用于input() 调用的返回值,而不是其中的变量您正在存储该结果:

sum1 = int(input('number'))

这同样适用于代码中的 add1 两种情况;使用:

add1 = int(input('number'))

现在右边的表达式产生一个整数结果,分别存储在sum1add1中。

【讨论】:

    【解决方案2】:

    声明int(sum1) = input('number')无效,应为sum1 = int(input('number')) 在第二种情况下,您将输入转换为 int - 这就是您想要的。在第一种情况下,您尝试强制转换一个函数 - Python 抱怨的是什么。

    这也应该在您的代码中随处更改!

    【讨论】:

      【解决方案3】:

      您必须将其转换为整数,这是正确的方法;

      x = int(input("something"))
      

      【讨论】:

        猜你喜欢
        • 2015-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-06
        相关资源
        最近更新 更多