【发布时间】:2021-06-15 05:55:54
【问题描述】:
我基本上有这个输入我想用一个函数拆分成不同的变量,但问题是有些我想拆分成2个变量,有些3个等。例如:
day, month, year = input("Birthday: ").split(",")
在此代码中,您将输入类似“1, January, 2000”的内容,它会将日、月和年排序为不同的变量,即“日”、“月”和“年”。但是,我希望有一个选项可以在字符串为空时不发生“拆分”。所以,我决定做一个函数来做这个。
对于函数部分,我有类似下面的内容。
def splitText(input, thing1, thing2, thing3):
if input != "":
thing1, thing2, thing3 = input.split(",")
bDay = input("Birthday: ")
splitText(bDay, day, month, year)
但是这段代码有一个问题,只有 3 个“东西”可以输入到参数中。我希望它是可变的,您可以将 2、3、4、任意数量的参数放入函数中。我尝试过使用“*args”,但我只是不太确定如何使它适用于我的其余代码等等。
任何帮助将不胜感激,无论是解决这个问题还是只是以更有效的方式完成目标:D
【问题讨论】:
-
" 我希望它是可变的,您可以在其中将 2、3、4、任意数量的参数放入函数中。"为什么不直接写
thing1, thing2, thing3 = input.split(",")部分,而不是调用函数呢?考虑到这一点,你打算让它工作的方式,你将不得不写出“任意数量的参数”的整个列表无论如何。无论如何,函数不可能按你想要的方式工作,因为分配给参数不会改变调用者的参数(它甚至可能不是第一名);只有改变那个对象才会起作用。 -
“但是,我希望在字符串为空时不会发生“拆分”的选项。”好的,在这种情况下,调用代码中的
day、month和year变量会发生什么情况?坦率地说,我认为你很困惑,并试图解决一个荒谬或不存在的问题。