2015-02-14 2 views
0

Я беру этот класс программирования, и одно из наших заданий - сделать викторину и вернуть правильные и неправильные ответы. Поэтому я закодировал все это, и единственное, что кажется неправильным, это мои аргументы. Мой результат всегда равен нулю. Я был бы признателен за любую помощь.Функции с аргументами

Вот мой код:

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") 

Это только отрывок из него, но получает представление в поперечнике.

+0

Этот код никогда не присваивает значение обратно 'correctAnswers' или' wrongAnswers' ни хранит значение, 'право - wrong' оценивающего к. –

+0

Что значит «правильно - неправильно»? Вы делаете вычитание, но не сохраняете результат нигде. – Barmar

+0

Кажется, что вы спали в тот день, когда класс изучал назначение переменных. – Barmar

ответ

2

Вы сравниваете строку и 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, который будет продолжать запрашивать, пока пользователь не вводит данные, которые могут быть переданы в int, и используя try/except to catch bad вход будет хорошей идеей:

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

Спасибо, я попробую это сейчас – Christopher

+0

Так что я пробовал это, и он все равно возвращает 0. – Christopher

+0

@Christopherm вы тоже использовали '+ ='? –

Смежные вопросы