如何从列表中调用项目?

时间:2014-10-15 14:14:31

标签: python

我的代码有什么问题?目前它正在询问有关名称的问题,但没有别的?我认为这是从列表中调用项目的东西;我使用了字符串,但我认为这是不正确的。任何人都可以帮助我做我应该做的事情吗?

subs=["Multiplication" , "Addition" , "Subtraction"]
import random
score=0
def addition_sub1():
    a=random.randint(1,20)
    b=random.randint(1,20)
    question1=int(input("What is" +str(a)+ "+" +str(b)+ ""))
    c=(a+b)
    if question == c:
        print("Correct!")
        score=score+1
    else:
        print("Incorrect!")
        return score

def subtraction_sub1():
    d=random.randint(1,20)
    e=random.randint(1,20)
    question2=int(input("What is" +str(a)+ "+" +str(b)+ ""))
    f=(d+e)
    if question2 == f:
        print("Correct!")
        score=score+1
    else:
        print("Incorrect!")
        return score

def Multiplication_sub1():
    g=random.randint(1,20)
    h=random.randint(1,20)
    question2=int(input("What is" +str(a)+ "+" +str(b)+ ""))
    i=(d+e)
    if question2 == i:
        print("Correct!")
        score=score+1
    else:
        print("Incorrect!")
        return score

name=input("What is your name? ")
print("Welcome to my quiz " +name)
for i in range(0,9):
    op=random.choice(subs)
    if op == str(0):
        Multiplication_sub1()
    if op == str(1):
        addition_sub1()
    if op == str(2):
        subtraction_sub1()

1 个答案:

答案 0 :(得分:0)

random.choice将从列表中返回一个随机元素。所以代码应该是:

if op == "Multiplication":
    Multiplication_sub1()
if op == "Addition":
    addition_sub1()
if op == "Subtraction":
    subtraction_sub1()

但是,我想给你一些建议。

  1. 在不同的函数中使用相同名称的变量是可以的。您可以在所有功能中呼叫abquestion

  2. 由于三个if条件是互斥的,因此您应该用elif替换底部的两个。