2013-07-01 79 views
0

我創建,是爲了看起來像一個菜單此選擇題答案不工作

1-quit 
2-multiplication 
3-division 

我似乎無法修復這個錯誤它是與random.randint

我」什麼已經這樣做的遠:

iFirst= random.randint(1,10) 
iSecond = random.randint (1,10) 
import random 
print(" Made by: Ahmed\n --------------------") 
print("1 - quit") 
print("2 - Multiplication") 
print("3 - Division") 

while 1: 
    choose=input("\n\t:") 
    if choose=="1": 
     break # we basically break the while loop so it stops 
    if choose=="2": 
     a=iFirst*iSecond 
     print(str(iFirst) + "*" + str(iSecond)) 
     print("a") + (random.randint()1,10) 
     print("a") + (random.randint()1,10) 
     print("b") + (random.randint()1,10) 
     print("c") + (str(a) 
    if choose =="3": 

我試圖讓這個如果我選擇「2」,它會隨機生成隨機答案乘法問題,都不同所有的時間,而真正的答案會不要停留在某個字母上。例如。如果答案是'b',下一個問題將會不同。

我希望它有點像這樣,但我不能,因爲這對我來說太具有挑戰性。

5*4 = ? 
a)10 
b)32 
c)20 
d)42 

我試圖讓它隨機化數字每次我推2或我得到一個不正確的答案。從那裏我可以完成剩下的工作,但目前它給了我一個我無法弄清楚的錯誤,因爲我是Python的初學者。我需要幫助。我不想讓你們爲我做所有這些,因爲我知道你不是爲了這樣做,你只是爲了幫助像我這樣的人。

在此先感謝!

+0

你需要移動'進口random'線_above_在您使用'random.randint'線。 –

+0

這裏你有太多的語法錯誤 – perreal

+0

我真的嗎?哇,我一定對此不好。 – Ahmed

回答

0

你可以把答案爲list,然後用random.shuffle()

>>> answers = [10, 32, 20, 42] 
>>> import random 
>>> random.shuffle(answers) 
>>> for c, item in zip('abcd', answers): 
...  print("{}) {}".format(c, item)) 
... 
a) 20 
b) 32 
c) 10 
d) 42 

洗牌再次給人以不同的順序

>>> random.shuffle(answers) 
>>> for c, item in zip('abcd', answers): 
...  print("{}) {}".format(c, item)) 
... 
a) 32 
b) 20 
c) 42 
d) 10 
+0

我會嘗試^ – Ahmed

0

(random.randint()1,10)應該是random.randint(1,10)(就像你有上面)。您還應該將import random行移動到文件的頂部。

你也應該解決您的打印語句,這裏是一個更好的方法:

print('{}*{}'.format(iFirst,iSecond)) 
print('a) {}'.format(random.randint(1,10))) 
print('b) {}'.format(random.randint(1,10))) 
print('c) {}'.format(a)) 
+0

謝謝,但它給我一個錯誤print('b){}'。format(random.randint(1,10)) – Ahmed