我有一个Python方法,我只想接受列出的或单数的整数,我如何定义它?
def autoInt(integers):
assert int(integers)
assert len(integers) > 0这是失败的,因为我不能有一个列表。我肯定这很简单。
TypeError: int()参数必须是字符串或数字,而不是'list‘
编辑:我的任务是这个方法只能接受列表中的整数。
发布于 2017-11-15 11:22:11
这取决于定义中以整数的形式传递的内容。例如,bool的实例算不算?浮点1.0
无论如何,您可以将all内置的内容与生成器表达式结合起来。
>>> a = [1,2,True]
>>> all(isinstance(x, int) for x in a)
True作为一个侧面:严格检查参数类型,而不是Python程序员在没有特定原因时所做的事情。更好的方法通常是编写清晰的文档字符串和/或键入提示。
Here是一个解释如何做后者的答案。除此之外,通常还存在“->垃圾(或错误)中的垃圾”的心态。
发布于 2017-11-15 11:21:17
您可以测试这样的整数列表:
assert(all(isinstance(item, int) for item in integers))发布于 2017-11-15 11:22:05
>>> my_list = [1, 2, 3.25]
>>> all(isinstance(item, int) for item in my_list)
False
>>> other_list = range(3)
>>> all(isinstance(item, int) for item in other_list)
True
>>> https://stackoverflow.com/questions/47305922
复制相似问题