带参数的函数

Functions with arguments

我正在学习这个编程 class,我们的作业之一是做一个测验和 return 正确和错误的答案。所以我已经对所有代码进行了编码,唯一似乎错误的是我传递的参数。我的结果始终为零。如有任何帮助,我将不胜感激。

这是我的代码:

correctAnswers = 0
wrongAnswers = 0

answer = input("Question 1: 5-3")
if(answer == 2):
    correctAnswers + 1
else:
    wrongAnswers +1

grade(correctAnswers, wrongAnswers)

grade(right, wrong):
    right - wrong
    print("You have a total of " + str(right) + " correct answers")

这只是其中的一个片段,但传达了这个想法。

您正在将字符串与 int 进行比较:

  int(input("Question 1: 5-3")) # cast to int

你还需要+=不只是+correctAnswers += 1

您可能也想 print(right - wrong)?

除了强制转换,您还可以与字符串进行比较:if answer == "2"

"foo"+ "bar" 确实会创建一个新对象,但这是串联,但是当你想增加一个变量时,你需要使用 += 这是 var = var + 1 的缩写形式。

最后,当将字符串转换为 int 时,要确保用户使用 while 循环输入有效数据,while 循环会一直询问,直到用户输入可以转换为 int 的数据并使用 try/except捕获不良输入是个好主意:

while True:
    try:
        answer = int(input("Question 1: 5-3"))
        break
    except ValueError:
        print("Invalid input")
if answer == 2:
    correctAnswers += 1
else:
    wrongAnswers += 1