【发布时间】:2023-04-02 10:33:01
【问题描述】:
我对编程很陌生,所以可能只是我遇到的基本语法问题,或者可能对限制我能力的函数不熟悉,但这里有一些问题。我在 youtube 教程中找到了以下程序,其中导师使用课堂方法创建了一个多项选择题测试,其中包含 3 个可能的答案。这是原始代码:
class Question:
def __init__(self, prompt, answer):
self.prompt = prompt
self.answer = answer
question_prompts = [
'What color are apples?\n(a) Red/Green\n(b) Purple\n(c) Orange\n\n',
'What color are Bananas?\n(a) Teal\n(b) Magenta\n(c) Yellow\n\n',
'What color are Strawberries?\n(a) Yellow\n(b) Red\n(c) Blue\n\n',
]
questions = [
Question(question_prompts[0], 'a'),
Question(question_prompts[1], 'c'),
Question(question_prompts[2], 'b'),
]
def run_test(questions):
score = 0
for question in questions:
answer = input(question.prompt)
if answer == question.answer:
score +=1
print('You got ' + str(score) + '/' + str(len(questions)) + ' correct')
run_test(questions)
原始代码只允许用户尝试每个问题一次,最终得分为 3。
问题:
我想添加一个条件语句/循环(在分数计算 if 语句之前)来检查用户是否输入了正确的选择“a”或“b”或“c”。如果用户输入了 a 或 b 或 c 以外的任何内容,则它必须无限循环并要求用户输入正确的选择 a 或 b 或 c。
我尝试了 while 循环,但它没有中断,即使用户输入了正确的 a、b 或 c 选择。请帮忙
【问题讨论】:
-
您发布的代码是您尚未编写但可以工作的代码,但指的是您编写的无效代码。为什么不发布您编写的代码,因为那是有实际问题的代码?请阅读如何制作minimal reproducible example。
-
欢迎来到 Stack Overflow!查看tour。就像约翰说的,我们不是读心术的人。您需要以minimal reproducible example 的形式提供您的非工作代码。有关其他提示,请参阅 How to Ask。
-
除了其他人所说的(我同意)——不要害怕分享“坏代码”;这里的人往往很乐意帮助您改进,并且通过分享您的尝试,您将学到最多,即使您(尚未)为他们感到自豪。
标签: python conditional-statements