如何在两件事都是正确的情况下打印信息,以及在这两件事都是正确的情况下如何使用输入功能

2024-09-19 23:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做控制性评估。我有这个密码:

# user Qualifications
print("\nQualification Level")

print("\n""\"AP\" = Apprentice",
      "\n\"FQ\" = Fully-Qualified")
user_qual = input("Enter you Qualification Level: ")

user_qual等于APFQ时,我想打印“correct”。但是当user_qual不等于APFQ时,我想打印一条错误消息并重新询问user_qual输入问题。然而,我尝试了很多不同的方法,但都做不到。你知道吗

请给出一个简单的解决方案,不要复杂。我只是一个初学者,正在学习基础知识。你知道吗


Tags: 密码inputlevelapprintenteruserfq
2条回答

您可以尝试在变量中定义限定级别。在这个简单的例子中,atuple就足够了,但是如果有更多的资格级别,adictionary就更有意义了。你知道吗

qualification_levels = ('AP', 'FQ')
print("\n""\"AP\" = Apprentice",
      "\n\"FQ\" = Fully-Qualified")
user_qual = input("Enter you Qualification Level: ")
if user_qual in qualification_levels:
    print('correct!')
else:
    print('ERROR!!!')

如果不满足以下条件,则需要将代码转换为函数,以便再次调用:

def prompt():
    # user Qualifications
    print('\nQualification Level')
    print('\n"AP" = Apprentice\n"FQ" = Fully-Qualified')

    user_qual = input('Enter you Qualification Level: ')

    if user_qual not in ('AP','FQ'):
        prompt() # Criteria not met, so ask again
    print('Correct!') # Criteria met, don't ask again


# Call the function the first time
prompt()

正如@IanAuld在评论中提到的,如果您希望允许用户以不区分大小写的方式提供答案(即AP)(因此用户可以键入'AP',您应该在评估之前转换大小写,如下所示:

if user_qual.upper() not in ('AP','FQ'):
    ...rest of code...

相关问题 更多 >