如何在python中直接在命令行中使用函数?

时间:2017-08-09 01:15:36

标签: python

例如: 执行程序后我的命令行必须是这样的:

perfect(44) #using the defined function in the output screen.(44) or any other number

,输出应为:

false

这是我尝试过的代码,但在此我无法在命令行中使用该函数。


def factors(n):
    factorlist = []
    for i in range(1,n):
        if n%i == 0:
            factorlist = factorlist + [i]
    print factorlist
    return factorlist

def perfect(n): factorlist = factors(n) if sum(factorlist) == n: return True else : return False

n = int(raw_input()) print(perfect(n))

4 个答案:

答案 0 :(得分:4)

转到您有.py文件的路径。通过以下命令以交互模式启动python解释器:

python -i filename.py

通过这样做,您应该能够访问filename.py文件中的所有功能。

答案 1 :(得分:1)

您可以将以下行附加到python脚本,以便在加载脚本时调用函数。

if __name__ == '__main__':
    print(perfect(int(sys.argv[1])))

然后您可以将其称为:

python myscript.py 44

答案 2 :(得分:0)

首先转到文件目录并从命令行运行命令。

python -c "import modulename"

此处modulename是您的file_name.py

答案 3 :(得分:0)

如果您愿意使用第三方套餐,请查看Google's Fire

pip install fire

修改您的代码,如下所示:

#!/usr/bin/env python
from fire import Fire

def factors(n):
    factorlist = []
    for i in range(1,n):
        if n%i == 0:
            factorlist = factorlist + [i]
    print factorlist
    return factorlist


def perfect(n):
    factorlist = factors(n)
    if sum(factorlist) == n:
        return True
    else :
        return False

# n = int(raw_input())
# print(perfect(n))

if __name__ == '__main__':
  Fire(perfect)

如果在Mac或Linux上,请确保您的文件是可执行的(抱歉,不知道您是否必须在Windows上执行此操作)。假设您的代码位于名为perfect的文件中:

chmod +x perfect

如果文件在您的路径中,您现在应该可以这样调用它:

$ perfect 44
[1, 2, 4, 11, 22]
False