Python 显示不应显示的错误消息(学校作业)
嗨,这是学校作业,所以请不要只给我正确的答案,而是告诉我我做错了什么,这样我就可以去纠正它了。 所以我的代码运行良好,但有一个问题。当我输入“Coin”时,在显示抛硬币后会显示错误消息。这是我的密码:Python 显示不应显示的错误消息(学校作业),python,Python,嗨,这是学校作业,所以请不要只给我正确的答案,而是告诉我我做错了什么,这样我就可以去纠正它了。 所以我的代码运行良好,但有一个问题。当我输入“Coin”时,在显示抛硬币后会显示错误消息。这是我的密码: def program(): error_message = "Answer not recognised!\nMake sure it is spelt right and starts with a capital letter." Choice = input("Pick e
def program():
error_message = "Answer not recognised!\nMake sure it is spelt right and starts with a capital letter."
Choice = input("Pick either 'Card' or 'Coin' ")
if Choice == "Coin":
import random
r = random.randint(1,2)
if r == 1:
print ("Heads!")
else:
print ("Tails!")
if Choice == "Card":
import random
card_number = random.randint(1,13)
if card_number == 1:
card_number = "Ace"
elif card_number == 11:
card_number = "Jack"
elif card_number == 12:
card_number = "Queen"
elif card_number == 13:
card_number = "King"
if Choice == "Card":
import random
card_suit = random.randint(1,4)
if card_suit == 1:
card_suit = "Hearts"
elif card_suit == 2:
card_suit = "Clubs"
elif card_suit == 3:
card_suit = "Diamonds"
else:
card_suit = "Spades"
if Choice == "Card":
print(card_number ,"of" , card_suit)
#else print error message
else:
print(error_message)
while flag:
program()
flag = input('Would you like to run the program again? [yes/no] ') == 'yes'
else:
print ("The program will now terminate.")
我试过很多不同的方法来解决这个问题,但是我想不出来。请记住,这是学校作业,所以我希望得到帮助,但不要被告知答案。感谢在
程序()的最外层,您有四个独立的if
语句。每一个都将一个接一个地执行。else
附加到最后的if
if Choice == "Card":
print(card_number ,"of" , card_suit)
#else print error message
else:
print(error_message)
当Choice
为Coin
时,则Choice==“Card”
计算结果为false,因此选择else
分支。您的意思是要有一个像这样的if
语句:
def program():
error_message = ...
Choice = ...
if Choice == "Coin":
# do all the coin related work
elif Choice == "Card":
# do all the card related work
else:
# handle the error
另一方面,从风格上讲,最好只导入一次模块中的第一个代码 谢谢大家我的代码现在可以用了,我现在只是想缩短它。非常感谢。
以下是完整的代码:
import random
flag = True
def program():
error_message = "Answer not recognised!\nMake sure it is spelt right and starts with a capital letter."
Choice = input("Pick either 'Card' or 'Coin' : ")
if Choice == "Coin":
r = random.randint(1,2)
if r == 1:
print ("Heads!")
else:
print ("Tails!")
elif Choice == "Card":
card_number = random.randint(1,13)
if card_number == 1:
card_number = "Ace"
elif card_number == 11:
card_number = "Jack"
elif card_number == 12:
card_number = "Queen"
elif card_number == 13:
card_number = "King"
card_suit = random.randint(1,4)
if card_suit == 1:
card_suit = "Hearts"
elif card_suit == 2:
card_suit = "Clubs"
elif card_suit == 3:
card_suit = "Diamonds"
else:
card_suit = "Spades"
print(card_number ,"of" , card_suit)
else:
print(error_message)
while flag:
program()
flag = input('Would you like to run the program again? [yes/no] ') == 'yes'
else:
print ("The program will now terminate.")
我知道它凌乱,但它的工作,所以现在我将集中精力缩短它和整理它。谢谢在程序()的主体中有四个if
语句和一个else
语句。查看else
对应的if
语句。查看打印错误消息的if/else语句的条件。哦,我想我明白了,它在Card选项下,因此如果选项不等于Card,那么如果您输入的不是“Card”的任何内容,它将显示正确的错误消息(例如“硬币”)它总是会打印错误信息。我只是在分类上有点困难。非常感谢你,你帮了我很多。