Python Carrés Fonction

Je suis en train d'écrire une fonction qui renvoie la liste des nombres carrés, mais sera de retour une liste vide si la fonction prend en paramètre ('pomme') ou (range(10)) ou une liste. J'ai la première partie, mais ne peut pas comprendre comment retourner l'ensemble vide si le paramètre n est pas un entier, je reçois un message d'erreur: unorderable types: str() > int()
Je comprends qu'une chaîne de caractères ne peut pas être comparé à un entier, mais j'en ai besoin pour revenir à la liste vide.

def square(n):

    return n**2

def Squares(n):

    if n>0:
        mapResult=map(square,range(1,n+1))
        squareList=(list(mapResult))   
    else:
        squareList=[]

    return squareList
Quelle est l'erreur que vous obtenez?
Ma conjecture est que vous voulez un try...except bloc.
Vous n'avez pas besoin d'utiliser map, et vous n'avez pas besoin de définir une fonction d'assistance square. Utiliser une liste de compréhension: [nn**2 for nn in n]
sinon ...si vous insistez sur l'utilisez pas une compréhension de liste map(lambda x: x**2, ...)

OriginalL'auteur user2553807 | 2013-07-06