从终端运行python函数

时间:2014-09-14 19:18:21

标签: python terminal

我开始参加python课程,我试图弄清楚如何从我的家庭作业文件中运行我的功能。我打开终端,将目录更改为桌面(我的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"

4 个答案:

答案 0 :(得分:3)

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

您也可以使用:

from  hw1 import fizzbuzz

因此您已将fizzbuzz导入当前的命名空间,然后可以使用fizzbuzz(15)调用它。

python modules

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

答案 1 :(得分:0)

方法1:

import hw1
hw1.fizzbuzz(15)

方法2:

from hw1 import fizzbuzz
fizzbuzz(15)

答案 2 :(得分:0)

我包含这个答案,因为谷歌在相关搜索案例中这个问题很高。用例正在执行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)

Python:2.7.9

答案 3 :(得分:0)

尽管此问题是关于在ModulePython Interpreter内的python文件(作为Interactive Mode)中执行函数,但也可以用一个函数或模块来运行函数-liner(即不使用交互式解释器),如Command line and environment中所述。除其他外:

  

用-c命令调用时,它将执行给定的Python语句   作为命令。此命令可能包含多个由分隔的语句   换行符。领先的空格在Python语句中很重要!

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

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

我不能简单地insert a newline on Windows CMD,所以这可能仅限于Simple statements

  

一个简单的语句包含在单个逻辑行中。一些   简单的语句可能在以分号分隔的一行上。