2017-07-04 79 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)