在这段代码中,我需要将第一个字符串“Computer”和“Networks”发送给frame_data()函数。该函数的工作是将接收到的x附加到l[]中,并将接收到的x的长度附加到l2[]中。那么sender的输出应该是这样的:9计算机9网络。在sender += l2 + l
的问题,我得到了这个错误:TypeError: can only concatenate str (not "list") to str
请问如何修复代码?
def frame_data(x):
l = []
l2 = []
l.append(x)
FrameLen = len(x)
l2.append(FrameLen+1)
sender = ''
sender += l2 + l
print(sender)
def split_str(seq, chunk, skip_tail=False):
lst = []
if chunk <= len(seq):
lst.extend([seq[:chunk]])
lst.extend(split_str(seq[chunk:], chunk, skip_tail))
elif not skip_tail and seq:
lst.extend([seq])
frame_data(lst)
seq = "ComputerNetworks"
split_str(seq, 8)
为什么这个函数在输入为
frame_data_check(“9Computer6Networks”)
1条答案
按热度按时间4ktjp1zp1#
你的代码太复杂了。
您可以使用一个简单的循环来拆分字符串,使用 chunk 值作为范围中的 step。
看起来,skip_tail bool是用来表示一个可能小于指定长度的尾随字符串将被省略。
编辑:新增frame_check函数
输出: