поэтому я начал программировать 1 неделю go, и меня немного смущает, почему моя программа не вычитает 1, если ответ на любой вопрос неверен - PullRequest
0 голосов
/ 24 марта 2020

Я не могу вычесть один из баллов в этой python программе. когда я запускаю код, он показывает ответ от 0 до 4, но не отрицательный, я хочу, чтобы ответ был отрицательным, если слишком много ответов неверны. Вот код:

***print("Hello and welcome to my quiz! ")
score = 0

# this the question i want it to add 1 if answer is correct and subtract 1 if answer is incorrect  

print("question 1: what is my name? ")
ans1 = input()
if ans1 == 'mark':
    print('correct')
    score += 1
else:print('incorrect')
    score -= 1

# second question
print("question 2: what is my age? ")
ans2 = input()
if ans2 == '19':
    print('correct')
    score += 1
else:print('incorrect')
score -= 1
print("question 3: what is my fathers name? ")
ans3 = input()
# third question
if ans3 == 'john':
    print('correct')
    score += 1
else:print('incorrect')
score -= 1

**# fourth question**

print("question 4: what is my mothers name? ")
ans4 = input()
if ans4 == 'Emily':
    print('correct')
    score += 1
else:print('incorrect')
score -= 1
print ('your score is', score ) 
# answer can be in negative***

Ответы [ 3 ]

1 голос
/ 24 марта 2020

Это на самом деле даже не должно выполняться.

else:print('incorrect')
    score -= 1

Вам нужно либо добавить оператор в одну строку, либо поместить весь код для оператора else в следующую строку и правильно сделать отступ. Python это все о пробелах.

Следующее должно решить вашу проблему.

else:
    print('incorrect')
    score -= 1
0 голосов
/ 24 марта 2020

Приращения будут вызываться независимо от ответа. Например,

# second question
print("question 2: what is my age? ")
ans2 = input()
if ans2 == '19':
    print('correct')
    score += 1
else:print('incorrect')
score -= 1

Если ответ правильный, тогда оценка будет увеличиваться, но затем оценка также будет уменьшаться, независимо от этого. score -=1 должен быть правильно вставлен, например:

# second question
print("question 2: what is my age? ")
ans2 = input()
if ans2 == '19':
    print('correct')
    score += 1
else:
    print('incorrect')
    score -= 1

Если вы попробуете это по всему сценарию, результаты могут быть больше, чем вы ожидаете.

0 голосов
/ 24 марта 2020

Программа почти в порядке. Я получаю отрицательный балл, если я отвечаю на все неправильно. Последняя строка неверна, так как вы не можете объединить целое со строкой. Кроме того, вам нужно правильно сделать отступ для содержимого в выражениях «else». Это будет готовая программа:

print("Hello and welcome to my quiz! ")
score = 0

# this the question i want it to add 1 if answer is correct and subtract 1 if answer is incorrect

print("question 1: what is my name? ")
ans1 = input()
if ans1 == 'mark':
    print('correct')
    score += 1
else:
    print('incorrect')
    score -= 1

# second question
print("question 2: what is my age? ")
ans2 = input()
if ans2 == '19':
    print('correct')
    score += 1
else:
    print('incorrect')
    score -= 1
print("question 3: what is my fathers name? ")
ans3 = input()
# third question
if ans3 == 'john':
    print('correct')
    score += 1
else:
    print('incorrect')
    score -= 1

# fourth question**

print("question 4: what is my mothers name? ")
ans4 = input()
if ans4 == 'Emily':
    print('correct')

print('your score is ' + str(score) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...