Python中isalpha()内置函数提示未定义的问题求助
问题分析与修复
错误原因
isalpha()是字符串的实例方法,不能直接独立调用,必须通过字符串对象触发(比如"a".isalpha())。而且列表里包含数字类型元素,直接对数字调用isalpha()会报错,得先判断元素是否为字符串类型。yes.append只是方法引用,没有执行添加操作,必须写成yes.append(things)才能把元素加入列表。- 循环内部每次打印列表会导致重复输出,应该在循环结束后统一打印最终结果。
修正后的代码
yes = [] item = [1, 7, -10, 34, 2, "a", -8] for things in item: # 先判断元素是否为字符串,再检查是否是字母 if isinstance(things, str) and things.isalpha(): continue yes.append(things) # 循环结束后打印最终数字列表 print(yes)
代码说明
isinstance(things, str)先过滤非字符串元素,避免对数字调用isalpha()引发类型错误。yes.append(things)正确执行元素添加操作。- 将
print(yes)移到循环外部,仅打印最终整理好的数字列表。
内容的提问来源于stack exchange,提问作者conronro
相关产品推荐
相关产品推荐

