所以我刚刚开始编写代码,这些代码会询问用户他们想要测试的主题以及他们想要的难度,然后,显然,给他们那个测试。我为if语句创建了一个函数来检查它是什么测试以及它应该有多难,我只是做了一个随机的,一次性的函数来测试代码。我将向您展示代码(显然非常早期-α并且无处接近完成)然后我将解释该问题。
def which_test(real_dif, real_test, give_test):
if difficulty == real_dif and test == real_test:
give_test
def easy_CS():
print("HEY")
while True:
test = str(input("What test do you want to take? Computer Science, History or Music? ").strip().lower())
difficulty = str(input("Do you want to take the test in easy, medium or hard? ").strip().lower())
which_test("easy", "computer science", easy_CS())
问题是,无论输入变量是什么,easy_CS()
函数都会被激活。我可以输入" JFAWN"对于test
变量和" JDWNA"对于difficulty
变量,它仍会打印" HEY"。我如何制作它以便它实际上采用变量,或者我怎样才能使它按照它的意图运作?
答案 0 :(得分:6)
这是因为你自己调用这个功能。请看这里的括号?他们称之为功能:
which_test("easy", "computer science", easy_CS())
^^^^^^^^^^
你打算做什么:
def which_test(real_dif, real_test, give_test):
if difficulty == real_dif and test == real_test:
give_test() # call the function
# more code...
which_test("easy", "computer science", easy_CS))
# pass the function itself ^^^^^^
所以,没有括号 - 没有函数调用。