Python技术咨询:给定单词与表情符号,代码未达预期输出如何解决
修正后的代码及问题分析
原代码的问题
- 循环存在重复输出:
first + second + emoji等价于完整双写单词加表情,和第一步输出完全重复,无实际意义。 - 最后一步逻辑错误:错误截取反转单词的部分内容,不符合完整格式需求。
- 循环范围不合理:遍历到单词全长度,导致重复生成已有输出。
修正后的代码
word = "Peter" emoji = "💛💛" # 生成完整双写单词 doubled_word = ''.join([char * 2 for char in word]) # 生成反转后的双写单词 reversed_doubled = ''.join([char * 2 for char in reversed(word)]) # 基础格式输出:双写词+表情、表情+双写词 print(doubled_word + emoji) print(emoji + doubled_word) # 遍历每个中间分割位置,在原字母双写后插入表情 for i in range(1, len(word)): split_pos = i * 2 # 每个字母双写占2位,计算分割点 prefix = doubled_word[:split_pos] suffix = doubled_word[split_pos:] # 前缀+表情+后缀 print(prefix + emoji + suffix) # 表情+前缀+后缀 print(emoji + prefix + suffix) # 反转双写词的两种格式输出 print(reversed_doubled + emoji) print(emoji + reversed_doubled)
代码说明
- 预先生成完整双写单词和反转双写单词,避免重复计算。
- 循环仅遍历到单词长度-1,只处理中间分割位置,不会重复生成首尾基础输出。
- 替换冗余重复输出,改为生成表情在前的对应格式。
- 修正最后一步逻辑,输出完整反转双写词的两种格式(表情在前/后)。
内容的提问来源于stack exchange,提问作者Sophie Tejada
相关产品推荐
相关产品推荐

