繁体   English   中英

从终端运行 python 函数

[英]Running python functions from terminal

我想弄清楚如何从我的作业文件中运行我的函数。 我打开终端,将目录更改为桌面(我的 hw1.py 文件所在的位置),启动 python,然后输入“import hw1”。 然后我输入 fizzbuzz(15) 并返回以下语句:

Traceback (most recent call last): File "<stdin>", line 1, in <module>

我试图运行的唯一功能是:

def fizzbuzz(n):
    if (n % 3) == 0 and (n % 5) == 0:
       return "FizzBuzz"
    elif (n % 3) == 0:
       return "Fizz"
    elif (n % 5) == 0:
       return "Buzz"

import hw1然后使用hw1.fizzbuzz(15)

您还可以使用:

from  hw1 import fizzbuzz

所以你将fizzbuzz导入到你当前的命名空间中,然后可以使用fizzbuzz(15)调用它。

蟒蛇模块

import hw1仅导入模块名称,而不是其中定义的所有函数,因此请使用my_module.my_functionfrom my_module import my_function语法。

尽管这个问题是关于在交互模式下Python 解释器内的Python文件(作为模块)执行函数,但也可以使用单行(即不使用交互式解释器)运行函数或模块,如文档所述在命令行和环境中 在其他人中:

当使用 -c 命令调用时,它执行作为命令给出的 Python 语句。 这里的命令可能包含多个由换行符分隔的语句。 前导空格在 Python 语句中很重要!

虽然字符串等的引号需要转义(取决于您的环境),但我可以使用 Python 3.8 在 Windows 10 上获得所需的输出:

python -c "import hw1; print(hw1.fizzbuzz(15))"
FizzBuzz

我不能简单地在 Windows CMD 上插入换行符,所以这可能仅限于简单语句

一个简单的语句包含在单个逻辑行中。 几个简单的语句可能出现在由分号分隔的一行中。

方法一:

import hw1
hw1.fizzbuzz(15)

方法二:

from hw1 import fizzbuzz
fizzbuzz(15)

我包含这个答案是因为在相关搜索案例中,这个问题在谷歌中很高。 用例是执行 Python 脚本以在那里执行带有系统参数的函数。 带有货币兑换费用计算器的代码示例

# 2000 euro 26.6.2017
# python countCurrencyRate.py 18870.75 18908.76
# Output: Currency exchange expense: 0.00201220185227
#
# For https://money.stackexchange.com/a/20277/1627

import sys

a1 = float( sys.argv[1] )
b1 = float( sys.argv[2] )

def countCurrencyRate(a=a1, b=b1):
   # a google currency rate, b destination currency rate; or reverse
   ave = (a+b)/2
   diff = abs(b-a)
   result = diff/ave
   print("Currency exchange expense: %s" % result)

if __name__ == "__main__":
   countCurrencyRate(a1, b1)

蟒蛇:2.7.9

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM