脚本在解释器中运行奇怪。 -i标志有什么影响?

时间:2016-10-09 02:51:31

标签: python

我最近制作了一个对角打印单词的程序。每当我去console / python解释器并输入

python3 "xxx.py",它会继续到下一行并且不会做任何事情。

但是,如果我这样做:python3 -i "xxx.py"它进入python并让我输入我的程序的输入

为什么会这样?

我的代码(从下面的评论中复制):

def diagonal(text, right_to_left = False):
    #Code for diagonal

diagonal()

我收到了这个错误:

Traceback (most recent call last): File "question1.py", line 17, in <module> diagonal() 
TypeError: diagonal() missing 1 required positional argument: 'text'

1 个答案:

答案 0 :(得分:3)

标志-i告诉python处理脚本,然后进入交互模式。没有-i python将只处理脚本然后退出。

脚本可能会定义函数,类等,但不能调用它们。如果您希望脚本执行某些操作,则必须在脚本中至少有一行调用函数。

通常的模式是:

#class and function definitions 
def print_diagonal(x):
    #code for diagonal

def main():
    #code for running the program
    word = input()
    print_diagonal(word)

#run the program
main()

你得到的错误是因为对角函数有一个必需的参数,即文本。你需要以某种方式提供这个论点。您可以在代码中使用input函数(如我的示例所示),或者您可以使用import sys命令行并阅读sys.argv[]python documentation包含此

的示例