-1

好吧,我是 Python 的菜鸟,以清除空气。我 15 岁,刚开始学习 Python,认为这是最好的编程语言。这可能看起来很愚蠢,但在这里,谁能调试或自动更正它?:P

def firstlogin(x,y):
    x=raw_input('Enter name: ')
    if x == 'Bob':
        return 'Hello there,press enter to go to the next test.'
    y=raw_input('Enter pass: ')
    if y == 'password':
        return ('You are now free to *** this account up')

因为 def 是一个函数,您可以在其中创建自己的函数,以防止一遍又一遍地编写相同的函数,或者基本上只是创建自己的函数。但是当我将它另存为.py. 我想当我想将它用于另一个项目时,我必须将它输入/导入到 python 中,或者有其他方法。

PS:自学,我生活在一个我无法在任何地方获得编程语言书籍的国家 :( .. 所以我上网.. 使用一点 Bucky 的视频等。

4

3 回答 3

3

您可以将其保存为您想要的任何名称,例如“foo.py”。

然后在你的其他 python 文件中,你可以通过导入来使用这个函数:

import foo
...

foo.firstlogin(bar,baz) # how to call the function.
于 2013-07-29T04:23:55.593 回答
2

This function won't do what you think, because you are returning after the first check, so it will just keep asking for the name and when the user enters Bob, nothing will happen because you aren't doing anything with the result.

Since you are overwriting whatever username and password you are passing in to the function, it will always check for Bob and not what you ask it to check for.

Try this version instead:

def firstlogin(user, passwd):
    ''' A function to check the username
        and password for a user '''

    x = raw_input('Enter Name: ')
    if x == user:
        y = raw_input('Great! Now try guessing the password: ')
        if y == passwd:
            print 'Correct!'
        else:
            print 'Sorry, password was wrong'
    else:
        print 'Sorry, username was wrong'

Save it to a file, lets say my_func.py, then in another file in the same directory, type:

from my_func import firstlogin

firstlogin('user','sekret')

Or you can type python to get to the interactive prompt, again from the same directory where you saved my_func.py:

>>> from my_func import firstlogin
>>> firstlogin('user','sekret')
于 2013-07-29T06:09:33.600 回答
1

检查函数的一种方法如下所示:

def firstlogin(x,y):
    x=raw_input('Enter name: ')
    if x == 'Bob':
        return 'Hello there,press enter to go to the next test.'
    y=raw_input('Enter pass: ')
    if y == 'password':
        return ('You are now free to *** this account up')


if __name__ == '__main__':
    firstlogin(bar, baz)

然后使用这个命令:python foo.py

这里发生的情况是__name__Python 将魔法变量设置__main__为告诉您模块已直接从命令行加载的值。

当您从另一个 Python 模块调用您的模块时,如下所示:

import foo
firstlogin(bar, baz)

魔术变量__name__将设置为foo,包含您的函数的模块的名称,因此您的引导代码将不会被执行。这是 Python 中使用的标准习惯用法,允许您检查代码,即使您通常打算从不同的模块调用它。正如你所看到的,这__name__通常是你的模块的名称,但是__main__当你直接从命令行调用你的模块时设置为。

于 2013-07-29T04:54:51.223 回答