首页 > 解决方案 > 计算正确答案

问题描述

我做了一个测试,有 5 个问题。首先你问这个人的名字,然后你回答问题。最后,您需要显示正确答案的数量和人的姓名。问题是当我回答1个问题时,没有出现以下问题

  a=str(input("Введите ФИО: "))
s = a
print("Срез строки: " , s[4::-2])
print("Применение метода к строке ФИО: " , a.islower())
print("Применение метода к строке среза: " , s.islower())
global balli
balli=0

print('Вопрос 1: Какую функцию нужно использовать для ввода данных?\n1). onput.\n2). input.\n3). inpot.')
x = True
n = input()
if n == '2':
    print('Правильно, следующий вопрос...')
    balli +=1
else:
    print('Не правильно, следующий вопрос...')
x=False
if x==True:
    y = True
    print('Вопрос 2: Что произойдет в данном случае (s1+s2)?\n1). сложение строк.\n2). деление строки на 2 части.\n3). повторение строки.')
n2 = input()
if n2 == '1':
    print('Правильно, следующий вопрос...')
    balli +=1
else:
    print('Не правильно, следующий вопрос...')
    y = False
    if y == True:
        z = True
    print('Вопрос 3: Закончите фразу. Абстрактным называется класс, который содержит один и более абстрактных ... '
          '\n1). конструкторов.\n2). методов.\n3). классов.')

    n3 = input()
    if n3 == '2':
        print('Правильно, следующий вопрос...')
        balli += 1
    else:
        print('Не правильно, следующий вопрос...')
z = True
if z==True:
    q = True
print('Вопрос 4: Как нужно обозначить оператор извлечения среза?\n1). ().\n2). {}.\n3). [].')

n4 = input()
if n4 == '3':
    print('Правильно, следующий вопрос...')
    balli +=1
else:
    print('Не правильно, следующий вопрос...')
q=False
if q==True:
    w = True
print('Вопрос 5: Какой из этих операторов прерывает цикл?\n1). break.\n2). else.\n3). continue.')

n5 = input()
if n5 == '1':
    print('Правильно, следующий вопрос...')
    balli +=1
else:
    print('Не правильно, следующий вопрос...')
w=False
print(a, balli)

标签: python

解决方案


我喜欢测验程序的前提,所以我很快就整理了自己的一个。它根本不是最佳的,但它会保持分数,并验证您是否用数字回答,以便我们更容易验证正确答案。

这里是:

def asker(question, alternatives, answer):
    print(question)
    for idx, alt in enumerate(alternatives):
        idx +=1
        print(f'{idx}. {alt}')
    while True:
        try:
            ans = input("Answer(q to skip): ")
            ans = int(ans)
            break
        except ValueError:
            if ans.lower() == "q":
                return False
            print("Error, answer has to be a number. Please try again.")
            return asker(question, alternatives, answer)
    if ans == answer:
        return True
    return False

questions = [
    [
        "What is colder, -40C or -40F?", # The question itself
        ["-40C", "-40F", "They are both as cold"], # The alternatives of the question
        3 # Answer, as an integer
    ],
    [
        "Who was the first president of the United States of America?",
        ["George Washington", "Thomas Jefferson", "Abraham Lincoln"],
        1
    ],
    [
        "Are clowns scary?",
        ["Yes!", "No!"],
        1
    ]
]

player = input("Name of the Player: ")

score = []
for q in questions:
    score.append(asker(*q))

print("Results of the Quiz:")
print(f"'{player}' got {sum(score)} out of {len(questions)} correct!")
print("Congratulations!")

这是一个演示:

Name of the Player: Hampus
What is colder, -40C or -40F?
1. -40C
2. -40F
3. They are both as cold
Answer(q to skip): 3
Who was the first president of the United States of America?
1. George Washington
2. Thomas Jefferson
3. Abraham Lincoln
Answer(q to skip): 2
Are clowns scary?
1. Yes!
2. No!
Answer(q to skip): 1
Results of the Quiz:
'Hampus' got 2 out of 3 correct!
Congratulations!

推荐阅读