2015-10-01 29 views
-5
import random 

x = random.randrange(11) 
z = random.randrange(11) 
y = random.choice('-+*') 

print("what is?", x, y, z) 
ans1 = int(input()) 

if ans1 == (x, y, z): 
    print("correct") 
    score = score + 1 
else: 
    print("incorrect,the answer is", x, y, z) 

例輸入和輸出不正確的數學問題:如何使Python制定出由變數

what is? 2 * 6 

12 

incorrect,the answer is 2 * 6 

如何使它打印the answer is 12?我需要以某種方式評估表達。

+3

你的問題在哪裏? –

+0

我該如何回答一個由變量組成的數學問題-x,y,z –

+0

theres也有問題,我的代碼可以糾正它 –

回答

0

加入

print (x,y,z) + 3 

後我得到:

Traceback (most recent call last): 
    File "python", line 7, in <module> 
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' 

這意味着你的(X,Y,Z)將永遠不等於任何給定的整數,因爲它不是一個整數。

1

operator模塊具有add,submult

>>> from operator import add, sub, mult 
>>> add(5, 6) 
11 
>>> sub(5, 6) 
-1 
>>> mult(5, 6) 
30 

您可以在字典把這些和看看他們:

from operator import add, sub, mult 
ops = {'+': add, 
     '-': sub, 
     '*': mult} 

ans = ops[y](x, z) 

使用eval是不是要跟隨一個很好的路徑。

+0

'operator'還包含'floordiv'和'truediv',你也應該在'/'中包含其中的一個。 – MattDMo

+0

@MattDMo那麼問題只有那三個操作員。我假設老師正在避免被零錯誤劃分。 –

+0

啊,沒注意到。 – MattDMo

相關問題