Python 以脚本形式执行模块

Python 以脚本形式执行模块,python,windows,Python,Windows,我现在正在学习python,今天,我遇到了一个问题 在里面 6.1.1以脚本形式执行模块 当您使用运行Python模块时 python fibo.py 模块中的代码将被执行,就像您导入它一样,但是使用 __名称设置为“\uuuu main\uuuuu”。这意味着通过在 您的模块: 您可以使该文件既可用作脚本,也可用作脚本 一个可导入的模块,因为代码 只运行解析命令行的 如果模块作为 “主”文件: $python fibo.py 50 1 2 3 5 8 13 21 34 但当我在贝壳里做这件事

我现在正在学习python,今天,我遇到了一个问题 在里面

6.1.1以脚本形式执行模块

当您使用运行Python模块时

python fibo.py

模块中的代码将被执行,就像您导入它一样,但是使用 __名称设置为“\uuuu main\uuuuu”。这意味着通过在 您的模块:

您可以使该文件既可用作脚本,也可用作脚本 一个可导入的模块,因为代码 只运行解析命令行的 如果模块作为 “主”文件:

$python fibo.py 50 1 2 3 5 8 13 21
34

但当我在贝壳里做这件事的时候

File "<input>", line 1
python fibo.py 222
SyntaxError: invalid syntax
文件“”,第1行
python fibo.py 222
SyntaxError:无效语法
如何正确执行脚本

菲波比是

def fib(n):
    a,b=0,1
    while b<n:
        print b,
        a,b = b,a+b


def fib2(n):
    result=[]
    a,b=0,1
    while b<n:
        result.append(b)
        a,b=b,a+b
    return result

if __name__ =="__main__":
    import sys
    fib(int(sys.argv[1]))
def fib(n):
a、 b=0,1

而b你在贝壳里到底做了什么?您正在运行的代码是什么

听起来你在脚本中犯了一个错误——可能是缺少冒号或缩进错误。如果看不到正在运行的文件,就不可能说得更多

编辑:

我已经知道出了什么问题。您正试图在pythonshell中运行
python fibo.py 222
。当我这样做时,我会得到相同的错误:

[138] % python
Python 2.6.1 (r261:67515, Apr  9 2009, 17:53:24)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> python fibo.py 222
  File "<stdin>", line 1
    python fibo.py 222
              ^
SyntaxError: invalid syntax
>>>
[138]%python
Python 2.6.1(r261:675152009年4月9日,17:53:24)
linux2上的[GCC 4.1.2 20080704(Red Hat 4.1.2-44)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>python fibo.py 222
文件“”,第1行
python fibo.py 222
^
SyntaxError:无效语法
>>>
您需要从操作系统的命令行提示符运行它,而不是从Python的交互式shell中运行它


确保首先切换到Python主目录。例如,在操作系统的命令行中键入:cd C:\Python33 \--具体取决于您的python版本。我的是3.3。然后键入:python fibo.py 200(例如)

“python fibo.py 222”这是正确的。向我们展示您的脚本,第一行的语法有问题。感谢Dev的帮助,但是我可以在交互式shell中调用fibo.fib(123)和fibo.fib2(345)吗
[138] % python
Python 2.6.1 (r261:67515, Apr  9 2009, 17:53:24)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> python fibo.py 222
  File "<stdin>", line 1
    python fibo.py 222
              ^
SyntaxError: invalid syntax
>>>