我正在进行python练习,但我被困在一个。
字符串分为两部分(两个新字符串):part1和part2。
如果字符串的长度相等,那么这两部分也必须相等。
E.g。 'Help' = 'He' and 'lp'
如果字符串的长度不相等,则将额外的字母分配给part1。
E.g。 'Hello' = 'Hel' and 'lo'
我正在进行的练习有两个字符串。我需要剪切这两个字符串,然后按以下方式连接它们:
<String1 Part1> + <String2 Part2>
<String2 Part1> + <String1 Part2>
因此,如果我们有card
和plan
字样,则会caan
和plrd
到目前为止,我能想到的只有:
def divide_strings(word1, word2):
if len(word1)%2 > 0 or len(word2) %2 > 0:
else len(word1) %2 == 0 or len(word2) %2 == 0:
我知道我还远未完成,但我确实可以在正确的方向上使用一些提示。 我的大脑卡住了。
提前致谢!
答案 0 :(得分:2)
你说提示 - 所以
分割字符串的重要一点是试图找出切割此字符串的位置。
考虑这个作业
x = len(s) // 2
if len(s) is 0 or 1, x will be 0
if len(s) is 2 or 3, x will be 1
if len(s) is 4 or 5, x will be 2
在所有情况下,x都是您要分配给第2部分的字符数
查找字符串切片并注意它可以采用负索引从字符串末尾开始计数
ADDED
此外,我注意到您的示例似乎与您的问题陈述不符。
即,如果原始字符串是“card”,我希望下面的结果基于您的问题陈述。显然,你的表现出不同的预期结果 - 对于仔细检查事物来说可能是一个好主意。
a / ca b / rd
答案 1 :(得分:0)
你想要的是天花板分割:
>>> w = 'hello'
>>> split = -( ( -len(w) )//2 )
>>> split
3
>>> p1, p2 = w[:split], w[split:]
>>> p1
'hel'
>>> p2
'lo'
这就是分裂:
所以把它放在一个函数中:
def splitword(w):
split = -((-len(w))//2)
return w[:split], w[split:]
和
>>> splitword('help')
('he', 'lp')
>>> splitword('hello')
('hel', 'lo')
答案 2 :(得分:0)
以下内容应该可以帮助您做您想做的事情。我没有安装python解释器,所以我实际上无法对此进行测试。
def splitword(w):
split = -((-len(w))//2)
return w[:split], w[split:]
part1a, part2a = splitword('card')
part1b, part2b = splitword('plan')
newword1 = part1a + part2b
newword2 = part1b + part2a