我打开一个终端并cd到我的文件中,我的.py文件名为trianglearea.py,这是我正在尝试执行的一个非常基本的程序。 我在shell中键入/ Documents $ python trianglearea.py,没有任何反应; bash提示我输入另一个命令,好像我刚刚提示的那个不存在。我尝试./trianglearea.py但我得到一个语法错误,因为我没有进入交互式python和bash不理解我的python脚本。如果我去文件gui风格并双击并说在终端中运行一个窗口闪烁并消失,但这不是我想要的。我想让我的小程序在交互式python中运行,这样我就可以输入内容并实际使用我的函数了。 这就是我在.py文件中的全部内容
def area(base,height):
''' (number, number) - number
Return area of a triangle with dimensions base * height
>>>>area(10,5)
25.0
'''
return base*height/2
我知道这不应该那么难,但它让我很难过。
答案 0 :(得分:5)
没有任何反应的原因是因为你没有在脚本中调用你的方法,所以文件只是定义了方法然后退出。这是一个快速解决方法:
def area(base,height):
''' (number, number) - number
Return area of a triangle with dimensions base * height
>>>>area(10,5)
25.0
'''
return base*height/2
print area(10,5) # calling the method
解决此问题的正确方法是添加此项检查:
if __name__ == '__main__':
print area(10,5)
从命令行运行Python脚本时,特殊变量__name__
设置为字符串'__main__'
(有关详细信息,请参阅this answer)。 if语句基本上说,“如果我从命令行运行,请使用参数10和5执行方法区域并打印结果。”
最后,为了确保您的脚本可以像./myscript.py
这样的提示运行,您需要告诉shell如何执行它。这是通过在文件顶部添加shebang line来完成的。
结合所有这些,您的文件如下:
#!/usr/bin/python
def area(base,height):
''' (number, number) - number
Return area of a triangle with dimensions base * height
>>>>area(10,5)
25.0
'''
return base*height/2
if __name__ == '__main__':
print area(10,5)
答案 1 :(得分:1)
假设您的脚本文件名是mycode.py
,那么您可以使用python -i mycode.py
:
$ python -i mycode.py
>>> area(10, 5)
-i
当脚本作为第一个参数或-c传递时
使用选项,执行后进入交互模式
脚本或命令。 refrence