如何使主要功能起作用

时间:2018-08-08 06:00:14

标签: python

我认为,我必须添加一个名为“ main”的子例程,以使所有其他子例程在内部运行。我不确定100%,但是主要思想是我必须添加主要对象,但是现在我的程序无法正常工作。我最后的消息没有打印。我将代码和错误消息放在下面,但是如果代码可以保持尽可能相似,那就太好了。

错误消息是:

Traceback (most recent call last):
  File "/Users/megan/Desktop/Digital/Python/m2.py", line 76, in <module>
    main()
  File "/Users/megan/Desktop/Digital/Python/m2.py", line 73, in main
    gametype ()
NameError: name 'gametype' is not defined

代码是:

    #Ask user what game they would like to play
def game () :
    global gametype,gamelist
    gamelist = ["Mario Cart","Minecraft","Angry Birds","Grand Theft Auto"]
    gamecount = 0
    gamelength = len(gamelist)
    print ("Hello the four games avaliable are:")

    while gamecount < 4:
        print (gamecount," ",gamelist[gamecount])
        gamecount = gamecount + 1

    while True:
        try:
            gamenum = int(input("What number game do you want? "))
            if 0 <= gamenum <= 3 :
                return gamenum
            print ("Please enter a number between 0 and",gamecount - 1,)
            print ("")

        except ValueError:
                print ("Please enter a valid value " )
                print ("")

gamenum = game ()
print ("You have chosen",gamelist[gamenum],)
print ("")

#Ask game level
def number():
    while True:
        try:
            Level = int(input("What is the level you would like to play at? "))

            if Level <= 1 and Level <= 25:
                print ("Beginner ")
                return ("Beginner")

            elif Level >=26 and Level <=75:
                print ("Intermediate")
                return ("Intermediate")

            elif Level >=76 and Level <=100:
                print ("Advanced")
                return ("Advanced")
            else:
                print("Out Of range(1-100): Please enter a valid number:")
                print ("")

        except ValueError:
            print("Please enter a valid number")
            print ("")


#Create a subroutine to print out the action message
def printmessage ():
    print ("")
    print ("#                                                      #")
    print ("########################################################")
    print ("#################### ACTION MESSAGE ####################")
    print ("########################################################")
    print ("#                                                      #")
    print ("Play "+gamelist[gametype]+" at "+num)
    print ("#                                                      #")
    print ("########################################################")
    print ("#################### ACTION MESSAGE ####################")
    print ("########################################################")
    print ("#                                                      #")

#This is to let the program work
def main ():
    num = number ()
    gametype ()
    printmessage ()

main()

1 个答案:

答案 0 :(得分:0)

尝试一下:

#Ask user what game they would like to play
def game () :
    global gametype,gamelist
    gamelist = ["Mario Cart","Minecraft","Angry Birds","Grand Theft Auto"]
    gamecount = 0
    gamelength = len(gamelist)
    print ("Hello the four games avaliable are:")

    while gamecount < 4:
        print (gamecount," ",gamelist[gamecount])
        gamecount = gamecount + 1

    while True:
        try:
            gamenum = int(input("What number game do you want? "))
            if 0 <= gamenum <= 3 :
                gametype = gamenum
                return gamenum
            print ("Please enter a number between 0 and",gamecount - 1,)
            print ("")

        except ValueError:
                print ("Please enter a valid value " )
                print ("")

gamenum = game ()
print ("You have chosen",gamelist[gamenum],)
print ("")

#Ask game level
def number():
    while True:
        try:
            Level = int(input("What is the level you would like to play at? "))

            if Level >= 1 and Level <= 25:
                print ("Beginner ")
                return ("Beginner")

            elif Level >=26 and Level <=75:
                print ("Intermediate")
                return ("Intermediate")

            elif Level >=76 and Level <=100:
                print ("Advanced")
                return ("Advanced")
            else:
                print("Out Of range(1-100): Please enter a valid number:")
                print ("")

        except ValueError:
            print("Please enter a valid number")
            print ("")


#Create a subroutine to print out the action message
def printmessage ():
    global gametype, num
    print ("")
    print ("#                                                      #")
    print ("########################################################")
    print ("#################### ACTION MESSAGE ####################")
    print ("########################################################")
    print ("#                                                      #")
    print ("Play "+gamelist[gametype]+" at "+num)
    print ("#                                                      #")
    print ("########################################################")
    print ("#################### ACTION MESSAGE ####################")
    print ("########################################################")
    print ("#                                                      #")

#This is to let the program work
def main ():
    global num
    num = number()
    # gametype()
    printmessage ()

main()