错误:无法分配给函数调用

时间:2015-01-28 17:16:22

标签: python string variables integer calculator

我正在尝试制作一个简单的计算器来添加,并且遇到了问题。

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)

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

3 个答案:

答案 0 :(得分:4)

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

int(sum1) = input('number')

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

如果您希望将<{1}}调用的结果转换为整数,则需要将其应用于input()调用的返回值,而不是存储结果的变量:

input()

这同样适用于代码中的sum1 = int(input('number')) 个案例;使用方法:

add1

现在,右侧表达式产生一个整数结果,分别存储在add1 = int(input('number')) sum1中。

答案 1 :(得分:0)

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

此外,您的代码应该随处更改!

答案 2 :(得分:0)

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

x = int(input("something"))