我认为,我必须添加一个名为“ 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()
答案 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()