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

问题描述 投票:1回答:2

如果有人可以帮我解决这个问题,我会很高兴,因为我有点被困在这里。我试图'触发'函数,通过名称调用它,然后通过写入数字来添加变量,这些数字由两者之间的空格分隔。

#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

我非常感谢每一个建议

python function input
2个回答
0
投票

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

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

注意*Input[1:len(Input)]自己将输入列表作为x传递。 *将列表展开,因此它被视为多个参数。可以将其视为将数据列表展平为参数列表。


-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做点什么我担心你需要进一步解释你的想法。

© www.soinside.com 2019 - 2024. All rights reserved.