我正在为学校做一个小项目。我尝试调用一个我已经定义的函数。它起作用了,但问题是,我在第40行调用了函数,函数定义在第56行。为什么它起作用了?是不是因为整个编译器和解释器的问题?
我在脚本模式下使用PyCharm。
def game_intro():
print "------------------ First Hero ------------------"
global n1
n1 = raw_input("Please Type a Name for Your Hero: ")
while not valid_name(n1):
print "------------------ First Hero ------------------"
n1 = raw_input("Please Type a Name for Your Hero: ")
print "------------------ Second Hero ------------------"
global n2
n2 = raw_input("Please Type a Name for Your Hero: ")
while not valid_name(n2):
print "------------------ Second Hero ------------------"
n2 = raw_input("Please Type a Name for Your Hero: ")
while not no_repeat(n2):
n2 = raw_input("Please Type a Name for Your Hero: ")
def valid_name(n):
if n == " ": # TO AVOID THE PLAYER GIVING A NAME AS SPACE
print "Your name can't be empty"
return False
elif n == "":
return False
return True
def no_repeat(m): # TO MAKE SURE THE PLAYERS WON'T TAKE THE SAME NAME
if m == n1:
print m + " Already Assigned, Please Type a Different Name."
return False
return True发布于 2018-01-05 09:30:55
你似乎忘记了在你的函数中缩进代码。
您还应该添加一个if __name__ == '__main__'行,以便可以像运行脚本一样运行您的代码:
python test.py
尝试以下代码:
test.py
def game_intro():
print "------------------ First Hero ------------------"
global n1
n1 = raw_input("Please Type a Name for Your Hero: ")
while not valid_name(n1):
print "------------------ First Hero ------------------"
n1 = raw_input("Please Type a Name for Your Hero: ")
print "------------------ Second Hero ------------------"
global n2
n2 = raw_input("Please Type a Name for Your Hero: ")
while not valid_name(n2):
print "------------------ Second Hero ------------------"
n2 = raw_input("Please Type a Name for Your Hero: ")
while not no_repeat(n2):
n2 = raw_input("Please Type a Name for Your Hero: ")
def valid_name(n):
if n == " ": # TO AVOID THE PLAYER GIVING A NAME AS SPACE
print "Your name can't be empty"
return False
elif n == "":
return False
return True
def no_repeat(m): # TO MAKE SURE THE PLAYERS WON'T TAKE THE SAME NAME
if m == n1:
print m + " Already Assigned, Please Type a Different Name."
return False
return True
if __name__ == '__main__':
game_intro()https://stackoverflow.com/questions/48105436
复制相似问题