【发布时间】:2021-01-11 06:00:42
【问题描述】:
我正在尝试在 python 中创建一个函数,它将一个字符串拆分为两个字符串,其中第一个包含所有小写字母 + 一些其他特殊字符,第二个包含所有大写字母+特殊字符。
重点是能够打字:
>>> first_message,second_message=string_split("SomEChaRacTers")
>>> print(first_message, second_message)
打印结果。
这就是我现在拥有的:
def string_split(string):
first_message_signs = "_."
second_message_signs = " |"
one = ""
two = ""
if len(string) == 0:
return string
if string[0].islower() or string[0] in first_message_signs:
one += string[0] + string_split(string[1:])
return one
elif string[0].isupper() or string[0] in second_message_signs:
two += string[0] + string_split(string[1:])
return two
else:
return string_split(string[1:])
在提示符中进行第一次调用时出现此错误: 回溯(最近一次通话最后): 文件“”,第 1 行,在 ValueError:要解压的值太多(预期为 2)
当我尝试只使用 message_one 时,我会在一个字符串中得到所有字符。
我该怎么办?
【问题讨论】:
-
您的所有
return语句都需要返回 2 个值,而不仅仅是 1 个。 -
我建议将您的价值观称为
upper和lower而不是one和two,这样您就可以更好地管理它们。这也可能使您的return应该是什么更加明显。