2017-07-04 78 views
-2

所以,这是在我的试卷,我是真的很困惑蟒蛇错误地计算数量

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 

+2

我赌注“python **正确**计算数字”... –

+6

因为您已将'18 * 2.5'的结果分配给num1,将int结果乘以1.5并将结果乘以num2。换句话说,第一个输入值被忽略。 –

+0

@EcirHana哈哈哈,是啊,我读了答案后,它终于有道理 – Almira

回答

0

在num2中,当您在num1 =“num1”变量存储器位置中指定一个新值时,您在数学运算之后多次执行num1的结果而不是之前执行此操作。

+0

啊所以这就是为什么!谢谢! – Almira

1

那么,当你计算

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() 
1
num1 = input("num1: ") # 60 
    num2 = input("num2: ") # 18 
    num1 = int(num2)*2.5 # 18 * 2.5 = 45 
    num2 = int(num1)*1.5 # 45 * 1.5 = 67.5 
` print("num1:", num1, "num2:", num2) 

在注释行,答案是计算

1

可以就地用交换来解决此问题:

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)