如何将用户输入字符串作为python脚本中的参数传递给函数?

时间:2010-11-03 19:52:22

标签: python

我想将用户输入字符串传递给函数,使用空格分隔的单词作为参数。但是,造成这个问题的原因是我不知道用户会给出多少参数。

3 个答案:

答案 0 :(得分:3)

def your_function(*args):
    # 'args' is now a list that contains all of the arguments
    ...do stuff...

input_args = user_string.split()
your_function(*input_args) # Convert a list into the arguments to a function

http://docs.python.org/tutorial/controlflow.html#arbitrary-argument-lists

当然,如果您是设计该函数的人,您可以将其设计为接受列表作为单个参数,而不是需要单独的参数。

答案 1 :(得分:1)

简单的方法,使用str.split和参数解包:

f(*the_input.split(' '))

但是,这不会执行任何转换(所有参数仍然是字符串)并且拆分有一些警告(例如'1,,2'.split(',') == ['1', '', '2'];请参阅文档)。

答案 2 :(得分:1)

有两种选择。您可以使该函数获取参数列表:

def fn(arg_list):
    #process

fn(["Here", "are", "some", "args"]) #note that this is being passed as a single list parameter

或者您可以在任意参数列表中收集参数:

def fn(*arg_tuple):
    #process

fn("Here", "are", "some", "args") #this is being passed as four separate string parameters

在这两种情况下,arg_listarg_tuple几乎相同,唯一的区别是一个是列表而另一个是元组:["Here, "are", "some", "args"]("Here", "are", "some", "args")