拆分短信回复

0 投票
2 回答
5300 浏览
提问于 2025-04-16 00:10

在回复短信时,我的字符限制是160个。我现在有一段代码,可以把超过160个字符的回复分成多个短信,每条短信都少于160个字符。而且这段代码还确保不会把单词拆开。我把代码放在这里:

repl='message to be sent. may be >160'
texts=[]
words=repl.split()
curtext=''
for word in words:
    #for the first word, drop the space
    if len(curtext)==0:
        curtext+=word

    #check if there's enough space left in the current message
    elif len(curtext)<=155-(len(word)+1):
        curtext+=' '+word

    #not enough space. make a new message
    else:
        texts.append(curtext)
        curtext=word
if curtext!='':
    texts.append(curtext)
return texts

不过,我现在想修改一下,让每第二条短信的末尾加上“回复 m 获取更多信息”。有没有什么好的方法可以做到这一点?

(我是在用Python写代码)

2 个回答

0

当然可以!请看下面的内容:

这段代码的作用是……(这里可以插入具体的代码解释)。它主要是用来……(解释代码的目的和功能)。

在这段代码中,我们可以看到……(描述代码的结构或逻辑)。比如说,……(举例说明代码的某个部分是如何工作的)。

总的来说,这段代码帮助我们……(总结代码的整体作用)。如果你有任何疑问,随时可以问我!

def sms_calculator(msg_text):
    sms_lst=[]
    if len(msg_text) == 0:
        return sms_lst

    l_m_text = (msg_text.split())
    if len(max(l_m_text, key=len))> 160:
        return sms_lst

    sms_string=l_m_text[0]
    for i in range(1,len(l_m_text)):
        if len(sms_string +' '+ l_m_text[i]) < 160 :
            sms_string=sms_string +' '+ l_m_text[i]
        else:
            sms_lst.append(sms_string)
            sms_string = l_m_text[i]
    sms_lst.append(sms_string)
    return sms_lst
2

在编程中,有时候我们会遇到一些问题,可能是因为代码写得不够好,或者是我们对某些概念理解得不够透彻。这些问题可能会让我们感到困惑,特别是对于刚开始学习编程的人来说。

比如,有些人可能在使用某个编程语言时,发现自己写的代码总是出错,或者运行的结果和预期不一样。这时候,我们就需要仔细检查自己的代码,看看是不是哪里出了问题。

此外,了解一些基本的编程概念,比如变量、循环和条件判断,也能帮助我们更好地理解代码的运行逻辑。这样,即使遇到问题,我们也能更快找到解决办法。

总之,编程是一门需要不断学习和实践的技能,遇到问题是很正常的,重要的是要保持耐心,逐步解决它们。

reply = "text to be sent ...."
texts = []

count = 0
current_text = []
for word in reply.split():
   if count + len(word) < (160 if len(texts) % 2 == 0 else (160-17)):
      current_text.append(word)
      count += (len(word) + 1)
   else:
      count = 0
      if len(texts) % 2 != 0):
         #odd-numbered text gets additional message...
         texts.append(" ".join(current_text) + "\nreply m for more")
      else:
         texts.append(" ".join(current_text))
   current_text = []

撰写回答