从列表中挑选随机子例程

时间:2014-11-04 15:04:26

标签: python list random python-3.3 subroutine

这适用于Python 3.3。当我运行这个程序时,它总是运行子程序" func_addition"。

我想让它从列表中选择一个随机子例程。所以,它会问一个随机算术问题。

import random
def func_addition():
    a = random.randint(1,25)
    b = random.randint(1,25)
    c=a+b
    answer=int(input("What is "+str(a)+" + "+str(b)+" ? "))   

def func_subtraction():
    d = random.randint(10,25)
    e = random.randint(1,10)
    f=d-e
    answer=int(input("What is "+str(d)+" - "+str(e)+" ? "))

def func_multiplication():
    g = random.randint(1,10)
    h = random.randint(1,10)
    i=g*h
    answer=int(input("What is "+str(g)+" X "+str(h)+" ? "))

my_list=[func_addition() , func_subtraction() , func_multiplication()]

name=input("What is your name ? ")
print("Hello "+str(name)+" and welcome to The Arithmetic Quiz")
print(random.choice(my_list))

2 个答案:

答案 0 :(得分:3)

删除parens,或者在创建列表时调用所有函数。

my_list = [func_addition , func_subtraction , func_multiplication]

name = input("What is your name ? ")
print("Hello {} and welcome to The Arithmetic Quiz".format(name))
chc = random.choice(my_list) # pick random function
chc() # call function

您似乎没有看到使用您的变量,我会执行以下操作来验证答案:

def func_addition():
    a = random.randint(1,25)
    b = random.randint(1,25)
    c = a + b
    answer = int(input("What is {} + {} ? ".format(a,b)))
    if answer == c:
        print("Well done, that is correct")
    else:
        print(" Sorry, that is incorrect, the correct answer is {}".format(c))

答案 1 :(得分:0)

import random
def func_addition():
    a = random.randint(1,25)
    b = random.randint(1,25)
    c=a+b
    answer=int(input("What is "+str(a)+" + "+str(b)+" ? "))   

def func_subtraction():
    d = random.randint(10,25)
    e = random.randint(1,10)
    f=d-e
    answer=int(input("What is "+str(d)+" - "+str(e)+" ? "))

def func_multiplication():
    g = random.randint(1,10)
    h = random.randint(1,10)
    i=g*h
    answer=int(input("What is "+str(g)+" X "+str(h)+" ? "))

my_list=[func_addition , func_subtraction , func_multiplication] #without parentheses

name=input("What is your name ? ")
print("Hello "+str(name)+" and welcome to The Arithmetic Quiz")
random.choice(my_list)()