如何通过输入定义函数中的变量?

时间:2019-02-06 01:37:48

标签: python function input

如果有人可以帮助我解决这个问题,我将非常高兴,因为我有点被困在这里。我试图通过名称来调用它,然后通过写数字来添加变量,然后用空格分开,以触发该函数。

#I tried:
#(Input: Test1 4 5)
Input = input().split()

def Test1(X,Y = 3):
     print(X,Y)

dic = {'Test1':Test1}
dic[Input[0]](Input[1:len(Input)])
#But it wil give me: ['4', '5'] 3 instead of just 4 5

我想定义X和Y,而不仅仅是我刚才所做的X。

我正在使用py3.0

我非常感谢每个建议

2 个答案:

答案 0 :(得分:0)

您可以使用*“散布” /将参数列表应用于函数:

dic[Input[0]](*Input[1:len(Input)])

请注意*Input[1:len(Input)]本身将输入列表作为x传递。 *将列表分散开,因此将其视为多个参数。将其视为将数据列表展平到参数列表中。

答案 1 :(得分:-1)

您可以通过执行join这样将列表转换为字符串:

Input = input().split()

def Test1(X,Y = 3):
     print(X,Y)

dic = {'Test1':Test1} dic[Input[0]](' '.join(Input[1:len(Input)]))

如果您感到困惑,为什么它之后仍打印3,那么函数Test1会接受两个变量,但是您只向其中传递了一个变量,因此它会打印另外一个(Y),您将其设置为默认值,如果您想对Y做些什么,恐怕您需要进一步说明您的想法。