首页 > 解决方案 > python 测验的用户输入

问题描述

我正在尝试验证一些用户输入。我正在创建一个多答案测验,它允许用户回答 a、b、c 或 d。我正在尝试验证用户输入,因此如果他们不输入任何内容或其他字母,它会弹出允许他们再次回答相同的问题。但是,当我运行我的代码时,例如,如果用户要插入“g”,它会在终端中显示“你错了”并转到下一个问题。

def quiz_game():
    questions_num = 0
    score = 0

    for key in questions:
        print("...................")
        print(key)
        for x in answers[questions_num]:
            print(x)        
        guess = input('Enter a, b, c or d: ')  
        validate_input(input)       
        if answer_input(guess, questions_num):                  
            print('Your answer is correct')
            questions_num += 1
            score += 1 
        else:                    
            print('Your answer is wrong')
            questions_num += 1

    points(score)

def validate_input(guess):
    guess = ('Enter a, b, c or d: ')
    while not guess:
        print('Enter a, b, c or d: ')

标签: python

解决方案


尝试进行这些修改,假设您的其他功能正常,它应该可以工作

def quiz_game():
    questions_num = 0
    score = 0

    for key in questions:
        print("...................")
        print(key)
        for x in answers[questions_num]:
            print(x)        
        guess = input('Enter a, b, c or d: ')  
        validate_input(guess)       
        if answer_input(guess, questions_num):                  
            print('Your answer is correct')
            questions_num += 1
            score += 1 
        else:                    
            print('Your answer is wrong')
            questions_num += 1

    points(score)

def validate_input(guess):
    suitable_answer = ['a', 'b', 'c', 'd']
    while not guess in suitable_answer:
        guess = input('Enter a, b, c or d: ')

推荐阅读