2013-07-01 58 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