python错误地计算数字

python错误地计算数字,python,python-3.5,Python,Python 3.5,所以,这是在我的试卷上,我真的很困惑 def num_input(): num1 = input("num1: ") num2 = input("num2: ") num1 = int(num2)*2.5 num2 = int(num1)*1.5 print("num1:", num1, "num2:", num2) num_input() 假设num1=60,num2=18,新的数字不应该是: num1: 45 num2: 90 但为什么输出是:

所以,这是在我的试卷上,我真的很困惑

def num_input():
    num1 = input("num1: ")
    num2 = input("num2: ")
    num1 = int(num2)*2.5
    num2 = int(num1)*1.5
    print("num1:", num1, "num2:", num2)

num_input()
假设num1=60,num2=18,新的数字不应该是:

num1: 45
num2: 90
但为什么输出是:

num1: 45
num2: 67.5

在num2中,当您写入“num1=”时,您是在“num1”变量内存位置内分配一个新值,您是在数学运算之后而不是之前乘以num1的结果。

当您计算

num1 = int(num2)*2.5
“int(num2)*2.5”的值分配给num1。在这个阶段,num1有一个新值,它是对上述结果的评估,不再是60

将您的代码改为:

def num_input():
    num1 = input("num1: ")
    num2 = input("num2: ")
    value1 = int(num2)*2.5
    value2 = int(num1)*1.5
    print("num1:", value1, "num2:", value2)

num_input()

在注释行中,计算答案您可以使用就地交换来解决此问题:

def num_input():
    num1 = input("num1: ")
    num2 = input("num2: ")
    num1,num2 = int(num2)*2.5, int(num1)*1.5
    print("num1:", num1, "num2:", num2)

>>>num_input()
num1: 60
num2: 18
('num1:', 45.0, 'num2:', 90.0)

我打赌“python正确计算数字”…因为您已将
18*2.5
的结果赋给num1,然后转换为int并将结果乘以1.5并赋给num2。换句话说,第一个输入值被忽略。@EcirHana哈哈哈,是的,在我读了答案之后,它终于有了意义,这就是为什么!非常感谢。
def num_input():
    num1 = input("num1: ")
    num2 = input("num2: ")
    num1,num2 = int(num2)*2.5, int(num1)*1.5
    print("num1:", num1, "num2:", num2)

>>>num_input()
num1: 60
num2: 18
('num1:', 45.0, 'num2:', 90.0)