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

Grok Learning中Word2sms的Python代码运行报错求助

问题修复方案

错误根源

报错TypeError: 'builtin_function_or_method' object is not iterable的核心原因:

  • word.split未加括号,split是字符串的内置方法,必须通过()调用才会返回可迭代的列表;否则wordlist存储的是方法对象本身,无法用于循环遍历。
  • 完全不需要用split拆分单词——要逐个处理每个字母,直接遍历原字符串word即可,split默认按空格分割字符串,这里完全用不上。

修正后的代码

# A dictionary containing the letter to digit phone keypad mappings.
KEYPAD = {
    'A': '2', 'B': '2', 'C': '2', 'D': '3', 'E': '3',
    'F': '3', 'G': '4', 'H': '4', 'I': '4', 'J': '5',
    'K': '5', 'L': '5', 'M': '6', 'N': '6', 'O': '6',
    'P': '7', 'Q': '7', 'R': '7', 'S': '7', 'T': '8',
    'U': '8', 'V': '8', 'W': '9', 'X': '9', 'Y': '9',
    'Z': '9',
}
word = input('Enter word: ')
# 遍历每个字符,转大写避免小写字母找不到映射
for char in word.upper():
    print(KEYPAD[char], end='')
# 最后换行
print()

额外优化说明

  • word.upper():处理用户输入小写字母的情况,避免因KEYPAD中仅存大写键映射导致KeyError。
  • end='':让转换后的数字连续输出,符合短信键盘的转换格式(例如输入"HELLO"会输出"43556")。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:27:07