我最近制作了一个对角打印单词的程序。每当我去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'
答案 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包含此