技术问询:如何实现每个字母前添加圆点?当前圆点位置错误
如何修改Python代码在每个辅音字母前添加圆点?
看起来你原来的代码逻辑走偏啦,咱们先捋清楚问题:你想要过滤掉输入里的元音字母,然后在剩下的每个辅音前面加个圆点,但原来的代码只是把辅音拼起来后,在末尾加了一个圆点(还只加了一次),肯定达不到效果。
咱们重新调整代码逻辑,核心思路是:遍历每个字符,只要是辅音(非元音),就直接把「圆点+该辅音」拼到结果里,这样一步到位就实现了每个辅音前加圆点的需求。
优化后的基础版代码
my_text = input().lower() # 先统一转小写,不用再判断大写元音,省事儿 vowels = {'a', 'e', 'i', 'o', 'u'} # 用集合做成员判断比列表更快 result = '' for letter in my_text: if letter not in vowels: result += f'.{letter}' # 直接把圆点+辅音拼入结果 print(result)
更简洁的进阶版本
如果想让代码更紧凑,还可以用join结合生成器表达式一行搞定拼接:
my_text = input().lower() vowels = {'a', 'e', 'i', 'o', 'u'} result = ''.join(f'.{c}' for c in my_text if c not in vowels) print(result)
为什么这样改?
- 先把输入转小写:这样只需要判断小写元音,不用同时处理大小写,代码更简洁
- 用集合存元音:集合的
in操作效率比列表高(虽然短列表差别不大,但这是个好习惯) - 遍历字符时直接拼接:每遇到一个辅音,就把圆点+辅音一起加入结果,自然实现了「每个辅音前加圆点」的效果,不用事后再单独处理圆点位置
举个例子,假设输入是Hello World,处理后会输出.h.l.l.w.r.l.d,完全符合你的需求~
内容的提问来源于stack exchange,提问作者Bita Jafarzadeh
相关产品推荐
相关产品推荐

