为了账号安全,请及时绑定邮箱和手机立即绑定

Python函数消息格式化程序

Python函数消息格式化程序

SMILET 2022-01-11 18:22:58
我的任务是开发一个函数,该函数接收字符串消息并在需要时返回带有分页的字符串消息数组。对于本练习,输入消息中的最大字符数为 160。此外,不要将单词分成音节和连字符。我的功能没有满足不分词的功能def sms_format(message, size):    sms_text = []    if len(message) == 0:        return sms_text    text = list(message)    if len(text) <= size:        new_text = ''.join(text)        sms_text.append(new_text)    elif len(text) > size:        while len(text)>size:            texts = ''.join(text[:size])            sms_text.append(texts)            text = text[size:]        sms_text.append(''.join(text))    return(sms_text)message = "Your task is to develop a function that takes"print(sms_format(message, 20))实际结果: ['Your task is to deve', 'lop a function that ', 'takes']预期结果:它不应该破坏单词
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

这似乎工作正常:


def sms_format(message, size):

    result = []

    words = message.split()

    chunk = words.pop(0)


    for word in words:

        if len(chunk + word) >= size:

            result.append(chunk)

            chunk = word

        else:

            chunk = " ".join((chunk, word))


    result.append(chunk)

    return result


message = "Your task is to develop a function that takes long text, and splits it into chunks."

print(sms_format(message, 20))

给出:


['Your task is to', 'develop a function', 'that takes long', 'text, and splits it', 'into chunks.']



查看完整回答
反对 回复 2022-01-11
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

更新 elif 块:


elif len(text) > size:

        current_size = size

        while len(text)>size:

            texts = ''.join(text[:current_size])

            if texts[-1] == ' ' or text[:size + 1] == ' ': 

                sms_text.append(texts)

                text = text[current_size:]

                current_size = size

            else:

                current_size = current_size - 1

Output : ['Your task is to ', 'develop a function ', 'that takes']


查看完整回答
反对 回复 2022-01-11
  • 2 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信