方法#1 程序给用户两次尝试正确回答的机会,用户只有在第一次尝试时才能获得正确答案, 第二次尝试错误后程序将显示正确答案。
question = '1+1= '
answer = '2'
correct = 0
user_answer = input(question)
if user_answer == answer:
print('Correct! ')
correct += 1
else:
user_answer = input('Try Again: ')
if user_answer == answer:
print('Correct! ')
else:
print(f'The answer is: {answer}')
print(correct)
方法#2
question = '1+1= '
answer = '2'
correct = 0
user_answer = input(question)
for try_ in range(2):
if user_answer != answer:
if try_ == 0:
user_answer = input('Try Again: ')
else:
print(f'The answer is: {answer}')
else:
print('Correct! ')
if try_ == 0:
correct += 1
break
print(f'number correct on the first try: {correct}')
方法#3
question = '1+1= '
answer = '2'
correct = 0
user_answer = input(question)
for try_ in range(2):
if try_ <= 1:
if user_answer == answer:
print('Correct! ')
if try_ == 0:
correct += 1
break
else:
if try_ == 0:
user_answer = input('Try Again: ')
else:
print(f'The answer is: {answer}')
print(f'number correct on the first try: {correct}')
方法#4
question = '1+1= '
answer = '2'
correct = 0
user_answer = input(question)
for try_ in range(2):
if try_ == 1 and user_answer != answer:
print(f'The answer is: {answer}')
break
if user_answer == answer:
print('Correct! ')
if try_ == 0:
correct += 1
break
else:
user_answer = input('Try Again: ')
print(f'number correct on the first try: {correct}')
所有方法都有效。我更喜欢方法#1,但我觉得这可以进一步简化。我不喜欢看到这部分代码两次:
if user_answer == answer:
print('Correct! ')
但我不确定如何简化,或者是否可能。任何帮助将不胜感激。
谢谢。
使用
for
循环迭代两次是减少重复代码的正确想法,并且由于两次迭代仅在用户提示上有所不同,因此您可以使循环迭代两次提示:
for prompt in question, 'Try Again: ':
if correct := input(prompt) == answer:
print('Correct! ')
break
else:
print(f'The answer is: {answer}')