如何在Python中将sys.argv[n]传递给函数

如何在Python中将sys.argv[n]传递给函数,python,function,argv,sys,Python,Function,Argv,Sys,我试图将“sys.argv[1]”传递到函数中 #!/usr/bin/env/ python import sys def main(): test(sys.argv[1]) def test(sys.argv[1]): print "Hello " + sys.argv[1] ./arg.py World File "./arg.py", line 5 def test(sys.argv[1]): ^ SyntaxError: invalid syn

我试图将“sys.argv[1]”传递到函数中

#!/usr/bin/env/ python
import sys
def main():
    test(sys.argv[1])
def test(sys.argv[1]):
    print "Hello " + sys.argv[1]

./arg.py World

File "./arg.py", line 5
def test(sys.argv[1]):
            ^
SyntaxError: invalid syntax

在浏览了几个小时的互联网后,我不知道该从这里走到哪里。我还尝试将“sys.argv[1]”设置为变量,并尝试将其传递到函数中,但仍然无效。

sys.argv[1]
返回一个字符串,因此不能将其作为参数/参数添加

我不明白你为什么需要这个,只是不需要争论:

def test():
    print "Hello " + sys.argv[1]

你可能也搞混了。参数名称不需要与调用函数时使用的名称相同。例如,如果我有
n=5
,则函数不需要名为
n
的参数。它可以是任何东西

因此,您可以:

def test(myargument):
    print "Hello " + myargument

我只想给你们一个关于论点的简短“教程”

def myfunc():
    print "hello!"
这里我们有一个函数。要调用它,我们需要
myfunc()
,是吗?当我们执行myfunc()时,它会打印“hello!”

这是另一个功能:

def myfunc(word):
    print word
def myfunc(word):
    print word

myword = 'cabbage'
myfunc(myword)
此函数接受一个参数。因此,当我们调用它时,必须添加一个参数。下面是调用函数的示例:

def myfunc(word):
    print word
def myfunc(word):
    print word

myword = 'cabbage'
myfunc(myword)
请注意
'colla'
是如何在
myword
变量中设置的。它不必与我们在函数中所称的参数相同。事实上,如果需要,我们甚至不必创建变量。我们可以只做
myfunc('colla')

此外,在本例中,您只能输入一个
参数,因为当我们定义函数时,我们只使用了一个参数。如果添加两个参数,您将得到类似于myfunc接受一个参数(给定两个参数)的结果


我们调用了参数
word
,以便在函数中使用它。注意我是如何使用
print word
而不是
print myword
。这就好像我们做了
word=myword
,但是我们没有做这一步,而是使用了参数名。

我认为您误解了函数的声明和调用。在您的程序中,只有声明,缺少调用语句。 关于从命令行传递参数,我更喜欢以下示例:

import sys
def hello(v):
    print 'hello '+v

def main(args):
    hello(args[1])

if __name__ == '__main__':
    main(sys.argv)

程序从“ifname==”main”行开始执行,方法是调用前面定义的函数并将sys.argv作为参数传递

好的,基本上我试图对参数做的是传递一些参数,这些参数将被多次调用。我应该使用原始输入/输入来设置这些变量吗?@GregRobertDutertre我认为你很可能误解了争论的要点。我还认为,我可能正在以错误的方式重新学习Python。@GregRobertDutertre我在回答中补充了一些内容。我希望这有帮助@GregRobertDutertre很高兴听到!如果你还有任何问题,请继续提问