编写字母移位编码程序遇TypeError错误,求助问题根源
错误根本原因
问题出在这行代码:
text = input('enter youre text :\n').lower
你漏写了lower方法的调用括号(),导致text变量引用的是字符串的lower方法对象,而不是执行该方法后得到的小写字符串。
Python的for...in循环只能遍历可迭代对象(比如字符串、列表、元组等),而方法对象属于不可迭代的类型,所以当你尝试for letter in text时,就触发了TypeError: 'builtin_function_or_method' object is not iterable错误。
修复方案
把这行代码修改为:
text = input('enter your text :\n').lower()
添加括号后,lower()会被执行,将用户输入的文本转为小写字符串,此时text是可迭代的字符串,循环就能正常遍历每个字符了。
顺带提个小问题:原代码里的youre是拼写错误,正确应该是your,不过这不会导致程序报错。
内容的提问来源于stack exchange,提问作者ali fraz
相关产品推荐
相关产品推荐

