Python实现字母转对应数量0拼接的编码函数正确写法
现有代码问题
你写的代码没法实现需求,核心问题如下:
- 没有逐字符遍历输入内容,仅判断整个输入是否等于单个字符"a"/"b",完全无法处理多字母输入、c-z的其他字母场景
- 分支逻辑硬编码了a、b两个字符的判断,
else块里的userImp == "b"是无效的比较运算,不会产生分支判断效果 - 末尾额外打印了原始输入内容,不符合输出要求
input()方法本身返回字符串类型,外面套的str()属于多余写法
实现逻辑
转换规则本质是:每个英文字母对应0的个数,等于该字母在a-z排序中的位次(a是第1位对应1个0,b第2位对应2个0,以此类推)。实现步骤很简单:
- 接收用户输入的字符串,统一转小写避免大写字母计算出错
- 遍历字符串中的每一个字符
- 借助ASCII码计算每个字符对应的位次,生成对应长度的0字符串
- 把所有字符生成的0串拼接完成后打印即可
可直接运行的正确代码
def codifier(): user_input = input("write a word: ") result = "" for char in user_input.lower(): # 计算当前字母对应的0的个数:a对应1,b对应2...z对应26 zero_count = ord(char) - ord('a') + 1 # 拼接对应长度的0 result += "0" * zero_count print(result) codifier()
运行效果验证
- 输入
abc:a对应1个0、b对应2个0、c对应3个0,最终输出000000,完全匹配示例要求 - 输入
ab:最终输出000 - 输入
Z:统一转小写后z对应26个0,输出26个连续0
内容的提问来源于stack exchange,提问作者Vrabiesmihai
相关产品推荐
相关产品推荐

