**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
我正在运行一个程序,它取一个数字和字母的列表,并将数字分离成一个sperate列表并打印该列表,但每次我运行代码时它都说isalpha没有定义。
yes = []
item=[1,7,-10,34,2,"a",-8]
for things in item:
if isalpha() ==True:
continue
else:
yes.append
print(yes)
2条答案
按热度按时间oug3syen1#
isalpha()
是str
类的一个方法,如果字符串中的所有字符都是字母,则返回True
,否则返回False
。例如:为了分隔item数组中的所有字母和数字,需要如下重写代码:
你必须在条件中执行
str(things)
,因为isalpha()
是一个只能用于字符串而不能用于整数的函数,如果你不添加它,你会得到一个错误消息AttributeError: 'int' object has no attribute 'isalpha'
。如果你使用
isinstance()
函数来检查things
是否是字符串,你也可以这样做,你可以这样做:因为字母只能是字符串,你可以用
isinstance()
函数检查things
是否是str
类型,这里有两个条件必须是True
。我希望我能帮助你:)
pdsfdshx2#
.isalpha
是一个方法而不是函数(请参阅this tutorial以了解更多有关区别的信息),因此不能通过名称调用它。或
此外,
continue
后面不需要else
,因此可以跟在后面**yes.append(things)
**(而不仅仅是yes.append
):(But为什么要在循环内部而不是在循环之后打印
yes
[potentially on repeat]?)或者,您可以只使用list comprehension(view output)