错误信息显示何时不应该(学校作业)

2024-05-15 21:36:00 发布

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

嗨,这是学校的工作,所以请不要只是给我正确的答案,但告诉我我做错了什么,所以我可以去纠正它请。 所以我的代码运行良好,但有一个问题。当我键入“Coin”时,错误消息会在显示投币后显示。这是我的密码:

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.")

我试过很多不同的方法来解决这个问题,但我想不出来。请记住,这是学校的工作,所以我想帮助,但没有人告诉我答案。谢谢


Tags: importnumbermessageifrandomerrorcardprogram
2条回答

program()的最外层,有四个独立的if语句。一个接一个地执行。else附加到最后的if

if Choice == "Card":
    print(card_number ,"of" , card_suit)

#else print error message
else:
    print(error_message)

ChoiceCoin时,则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模块最好只作为模块中的第一个代码

谢谢大家我的代码现在工作,我现在只是想缩短它。谢谢你 以下是完整的代码:

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.")

我知道它凌乱,但它的工作,所以现在我将集中精力缩短它和整理它。谢谢

相关问题 更多 >