You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python初学者求助:如何实现按双规则编码用户输入消息

Python消息编码:整合两种规则的实现方案

需求说明

对输入文本按以下规则编码:

  • 若单词以元音(a/e/i/o/u,不区分大小写)开头,编码为首字母+尾字母
  • 若单词以辅音开头,移除单词中所有元音

示例:
输入文本:The quick brown fox used to sleep inside this box
预期编码输出:Th qck brwn fx ud t slp ie ths bx

现有代码问题分析

你当前的代码是分开处理两种规则,没有整合到统一流程中:

  1. 第一个循环直接遍历整个输入字符串,未按单词拆分处理,导致辅音开头的规则会错误删除所有单词中的元音,而非逐个单词处理
  2. 第二个循环仅处理元音开头的单词,未收集结果,也未与辅音开头的处理逻辑结合

修正后的实现代码

vowels = "aeiouAEIOU"
input_text = input("请输入要编码的文本:")
words = input_text.split()
encoded_words = []

for word in words:
    # 统一转为小写判断首字母是否为元音,兼容大小写输入
    if word[0].lower() in vowels.lower():
        # 元音开头:取首字母+尾字母
        encoded_word = word[0] + word[-1]
    else:
        # 辅音开头:过滤所有元音字符
        encoded_word = ''.join([char for char in word if char.lower() not in vowels.lower()])
    encoded_words.append(encoded_word)

# 拼接编码后的单词并输出
print(' '.join(encoded_words))

代码逻辑说明

  1. 大小写兼容:定义包含大小写的元音集合,通过lower()统一转换后判断,避免因输入单词首字母大写导致的判断错误(比如示例中的"The")
  2. 逐单词处理:将输入文本按空格拆分为单词列表,逐个处理每个单词
  3. 规则分支处理:
    • 元音开头的单词:直接截取首字符和尾字符拼接
    • 辅音开头的单词:用列表推导式过滤掉所有元音字符,再拼接成新字符串
  4. 结果整合:将所有编码后的单词存入列表,最后用空格连接成完整字符串输出

内容的提问来源于stack exchange,提问作者sameer transport

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:35:17