Maison >développement back-end >Tutoriel Python >Doit être str, pas NoneType : Comment résoudre l'erreur de type NoneType de Python ?

Doit être str, pas NoneType : Comment résoudre l'erreur de type NoneType de Python ?

PHPz
PHPzoriginal
2023-06-24 21:22:352574parcourir

L'erreur de type NoneType en Python est l'une des erreurs les plus courantes lors de l'exécution du programme. Elle se produit lorsque nous opérons avec une variable qui n'a reçu aucune valeur, ou lorsque la valeur de retour de certaines fonctions est None. . Ce type d'erreur entraînera le blocage du programme et sera difficile à maintenir. Nous devons donc apprendre à résoudre l'erreur NoneType de Python.

1. Vérifiez la valeur de retour de la fonction

En Python, la valeur de retour de nombreuses fonctions est None. À l'heure actuelle, nous devons vérifier la valeur de retour de la fonction pour éviter que le programme n'ait une erreur NoneType. Par exemple, le code suivant :

def get_user(name):
    if name == 'admin':
        return {'username': 'admin', 'email': 'admin@example.com'}
    else:
        return None

user = get_user('guest')
email = user['email']

Dans cet exemple, si le paramètre de la fonction get_user est 'admin', alors elle renverra un dictionnaire, mais si le paramètre est 'guest', la fonction renverra directement None At. cette fois, si nous appelons directement email Pour cette variable, une erreur NoneType se produira. Afin d'éviter cette erreur, nous pouvons porter un jugement avant de recevoir l'email :

def get_user(name):
    if name == 'admin':
        return {'username': 'admin', 'email': 'admin@example.com'}
    else:
        return None

user = get_user('guest')
if user is not None:
    email = user['email']

De cette façon, lorsque la fonction renvoie None, le programme ne continuera pas à exécuter la ligne de code email = user['email'], évitant ainsi l'apparition de l'erreur NoneType.

2. Utiliser les valeurs par défaut

Parfois, nous devons recevoir des paramètres saisis par l'utilisateur et opérer sur ces paramètres, mais l'utilisateur ne peut pas saisir tous les paramètres. À ce stade, certains paramètres deviendront Aucun, ce qui entraînera une erreur NoneType. l'apparence. Par exemple :

def calculate_area(length, width):
    return length * width

print(calculate_area(5, None))

Dans cet exemple, la fonction calculate_area reçoit deux paramètres, mais si l'utilisateur oublie de saisir le deuxième paramètre width, la largeur sera définie sur None par défaut, ce qui entraînera une erreur NoneType. Afin d'éviter cette erreur, nous pouvons définir la valeur par défaut du paramètre dans la fonction, par exemple :

def calculate_area(length, width=None):
    width = width or length
    return length * width

print(calculate_area(5, None))

Dans cet exemple, lorsque l'utilisateur ne saisit pas le paramètre width, la largeur sera définie sur longueur par défaut, ainsi éviter l'apparition d'erreurs NoneType.

3. Vérifiez le type de variable

Parfois, nous ne savons pas si la valeur d'une variable est Aucune. À ce stade, nous pouvons déterminer si elle est Aucune en vérifiant le type de la variable. Par exemple :

def get_user(name):
    if name == 'admin':
        return {'username': 'admin', 'email': 'admin@example.com'}
    else:
        return None

user = get_user('guest')
if isinstance(user, dict):
    email = user['email']

Dans cet exemple, nous utilisons isinstance(user, dict) pour vérifier si l'utilisateur est un type dictionnaire. S'il s'agit d'un type dictionnaire, nous pouvons continuer à exécuter le code suivant.

4. Utiliser la gestion des exceptions

En Python, nous pouvons utiliser la gestion des exceptions pour détecter les erreurs NoneType et les gérer en conséquence. Par exemple :

def get_user(name):
    if name == 'admin':
        return {'username': 'admin', 'email': 'admin@example.com'}
    else:
        return None

user = get_user('guest')
try:
    email = user['email']
except TypeError:
    email = None

Dans cet exemple, nous utilisons try...sauf pour intercepter l'exception TypeError Lorsqu'une erreur NoneType se produit lors de l'exécution du programme, elle passe automatiquement au bloc except et exécute le code de traitement correspondant.

Résumé

En Python, l'erreur NoneType est une erreur très courante, mais tant que vous maîtrisez la bonne solution, vous pouvez efficacement éviter cette erreur. Nous pouvons résoudre les erreurs NoneType en vérifiant la valeur de retour de la fonction, en utilisant les valeurs par défaut, en vérifiant les types de variables et en utilisant la gestion des exceptions. Lors de l'écriture de programmes Python, nous devons faire attention à éviter les erreurs NoneType et à améliorer la lisibilité et la stabilité du programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn