如何在Python的用户定义函数中检查传递给它的仅包含整数的list []?

问题描述

我正在尝试查看列表是否包含整数:

def fun(a):
    if a[:] == int:
        print('Sum of elements',sum(a))
        print('Minimum number ',min(a))
        print('Maximum number ',max(a))
        print('Length of elements',len(a))
    else:
        print('Give integers list only')

list = [1,2,3,4,5,'hi']
fun(list) 

输出

**Output :** *Give integers list only*

解决方法

您需要逐项检查类型。将if a[:]==int:替换为

if all(isinstance(n,int) for n in a):
    ...

在您的定义中。

,

您可以循环浏览并使用 is_integer() 如果在任何时候失败,则返回错误

,
def fun(a):
    for value in a:
        if not isinstance(value,int):
            print('Give integers list only')
            break 
    else:
        print('Sum of elements',sum(a))
        print('Minimum number ',min(a))
        print('Maximum number ',max(a))
        print('Length of elements',len(a))