首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我在定义函数的行之前的一行上调用函数,为什么我的代码可以正常工作?

如果我在定义函数的行之前的一行上调用函数,为什么我的代码可以正常工作?
EN

Stack Overflow用户
提问于 2018-01-05 08:12:58
回答 2查看 83关注 0票数 0

我正在为学校做一个小项目。我尝试调用一个我已经定义的函数。它起作用了,但问题是,我在第40行调用了函数,函数定义在第56行。为什么它起作用了?是不是因为整个编译器和解释器的问题?

我在脚本模式下使用PyCharm。

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2018-01-05 09:30:55

你似乎忘记了在你的函数中缩进代码。

您还应该添加一个if __name__ == '__main__'行,以便可以像运行脚本一样运行您的代码:

python test.py

尝试以下代码:

test.py

代码语言:javascript
运行
复制
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()
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48105436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档