Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 显示不应显示的错误消息(学校作业)_Python - Fatal编程技术网

Python 显示不应显示的错误消息(学校作业)

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

嗨,这是学校作业,所以请不要只给我正确的答案,而是告诉我我做错了什么,这样我就可以去纠正它了。 所以我的代码运行良好,但有一个问题。当我输入“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.")

我试过很多不同的方法来解决这个问题,但是我想不出来。请记住,这是学校作业,所以我希望得到帮助,但不要被告知答案。感谢在
程序()的最外层,您有四个独立的
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”的任何内容,它将显示正确的错误消息(例如“硬币”)它总是会打印错误信息。我只是在分类上有点困难。非常感谢你,你帮了我很多。