Maison > développement back-end > Tutoriel Python > Résumé des erreurs courantes commises par les débutants lors de l'apprentissage de Python

Résumé des erreurs courantes commises par les débutants lors de l'apprentissage de Python

怪我咯
Libérer: 2017-04-06 11:48:14
original
1232 Les gens l'ont consulté

J'ai récemment appris Python, et maintenant je résume quelques erreurs courantes comme suit :

1) J'ai oublié de mettre à la fin de if , elif , else , for , while , class , instruction def Ajouté : (provoquant "SyntaxError : syntaxe invalide") Cette erreur se produira dans un code similaire à :

if spam == 42 print('Hello!')
Copier après la connexion

2) Utilisez = au lieu de == (provoquant "SyntaxError : syntaxe invalide) ") = est un opérateur d'affectation et == est une opération de comparaison égale. Cette erreur se produit dans le code suivant :

if spam = 42: print('Hello!')
Copier après la connexion

3) Utilisation incorrecte de l'indentation. (résultant en "IndentationError : indentation inattendue", "IndentationError : unindent ne correspond à aucun niveau d'indentation externe" et "IndentationError : un bloc indenté attendu") N'oubliez pas que l'augmentation de l'indentation n'est utilisée qu'après les instructions se terminant par : et doit être restaurée. puis au format d'indentation précédent. Cette erreur se produit dans le code suivant :

print('Hello!') 
   print('Howdy!')
Copier après la connexion

ou :

if spam == 42: 
print('Hello!') 
print('Howdy!')
Copier après la connexion

ou :

 if spam == 42: 
print('Hello!')
Copier après la connexion

4) J'ai oublié d'appeler len (dans la boucle for instruction ) (résultant en "TypeError: l'objet 'list' ne peut pas être interprété comme un entier") Habituellement, vous souhaitez parcourir les éléments d'une liste ou d'une chaîne par index, ce qui nécessite d'appeler la fonction range(). N'oubliez pas de renvoyer la valeur len au lieu de la liste. L'erreur se produit dans le code suivant :

spam = ['cat', 'dog', 'mouse'] 
for i in range(spam): 
     print(spam[i])
Copier après la connexion

5) Essayez de modifier la valeur de la chaîne (ce qui entraîne "TypeError : l'objet 'str' ne prend pas en charge l'affectation d'élément"). La chaîne est un type de données immuable, L'erreur se produit dans un code comme :

spam = 'I have a pet cat.' 
spam[13] = 'r' print(spam)
Copier après la connexion

lorsque vous souhaitez réellement faire ceci :

spam = 'I have a pet cat.' 
spam = spam[:13] + 'r' + spam[14:] print(spam)
Copier après la connexion

6) Essayez de concaténer une valeur autre qu'une chaîne avec une chaîne (ce qui donne "TypeError : Impossible de convertir implicitement l'objet 'int' en str") Cette erreur se produit dans un code tel que :

numEggs = 12 print('I have ' + numEggs + ' eggs.')
Copier après la connexion

lorsque vous souhaitez réellement faire ceci :

numEggs = 12 print('I have ' + str(numEggs) + ' eggs.')
Copier après la connexion

ou :

 numEggs = 12 print('I have %s eggs.' % (numEggs))
Copier après la connexion

7) J'ai oublié d'ajouter des guillemets au début et à la fin de la chaîne (ce qui entraîne "SyntaxError: EOL while scanning string literal") Cette erreur se produit dans le code suivant :

print(Hello!') 或者: print('Hello!)
Copier après la connexion

ou :

myName = 'Al' print('My name is ' + myName + . How are you?')
Copier après la connexion

8) Erreur d'orthographe du nom de variable ou de fonction (entraînant "NameError : le nom 'fooba' n'est pas défini") Cette erreur se produit dans le code suivant :

foobar = 'Al' print('My name is ' + fooba)
 或者:
spam = ruond(4.2) 
或者: 
spam = Round(4.2)
Copier après la connexion

9) Nom de la méthode, faute de frappe hors plage") Cette erreur se produit dans le code suivant :

spam = 'THIS IS IN LOWERCASE.' 
spam = spam.lowerr()
Copier après la connexion

11) Utilisation d'une valeur de clé de dictionnaire inexistante (résultant en "KeyError: 'spam' ") Cette erreur se produit dans le code suivant :

spam = ['cat', 'dog', 'mouse'] 
print(spam[6])
Copier après la connexion

12) Si vous essayez d'utiliser des mots-clés Python comme noms de variables (ce qui entraîne "SyntaxError : syntaxe invalide"), les mots-clés Python ne peuvent pas être utilisés comme noms de variables, l'erreur se produit dans un code comme :

spam = {'cat': 'Zophie', 'dog': 'Basil', 'mouse': 'Whiskers'}
print('The name of my pet zebra is ' + spam['zebra'])
Copier après la connexion

Les mots-clés de Python3 sont : et, as, assert, break, class, continue, def, del, elif, else, except, False, enfin, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, return

class = 'algebra'
Copier après la connexion
13) Utilisation de l'opérateur d'incrémentation dans un nouveau définition de la variable (provoquant "NameError : le nom 'foobar' n'est pas défini") N'utilisez pas 0 ou une chaîne vide comme valeur initiale lors de la déclaration d'une variable De cette façon, la phrase spam += 1 en utilisant l'opérateur d'incrément est égale à. spam = spam + 1, ce qui signifie que le spam doit spécifier une valeur initiale valide. Cette erreur se produit dans le code suivant :

14) Utilisez des variables locales dans les fonctions avant de définir des variables locales (à ce stade, il existe une variable globale portant le même nom que la variable locale) (ce qui donne " UnboundLocalError : variable locale 'foobar' référencée avant l'affectation") Il est très compliqué d'utiliser une variable locale dans une fonction et il existe une variable globale du même nom. La règle générale est la suivante : si quelque chose est défini dans la fonction, si elle n'est utilisée que dans la fonction Elle est locale, sinon c'est une variable globale. Cela signifie que vous ne pouvez pas l'utiliser comme variable globale dans une fonction avant de la définir. L'erreur se produit dans le code suivant :

spam = 0 
spam += 42 
eggs += 42
Copier après la connexion

15) Essayer d'utiliser range() pour créer une liste d'entiers (résultant en "TypeError : l'objet 'range' ne prend pas en charge l'affectation d'éléments") Parfois, vous Je veux obtenir une liste avec une liste ordonnée d'entiers, donc range() semble être un bon moyen de générer cette liste. Cependant, vous devez vous rappeler que range() renvoie un « objet plage », et non la valeur réelle de la liste. L'erreur se produit dans le code suivant :

someVar = 42 
def myFunction(): 
   print(someVar) 
   someVar = 100 
   myFunction()
Copier après la connexion

C'est peut-être ce que vous voulez faire :

spam = range(10) 
spam[4] = -1
Copier après la connexion

(Remarque : dans Python 2, spam = range(10) fonctionne Oui, car range() dans Python 2 renvoie une valeur de liste, mais dans Python 3 l'erreur ci-dessus se produira)

spam = list(range(10)) 
spam[4] = -1
Copier après la connexion
16) L'erreur réside dans les opérateurs d'incrémentation et de décrémentation ++ ou --. (Résultant en "SyntaxError: invalid syntax") Si vous êtes habitué à d'autres langages tels que C++, Java, PHP, etc., vous souhaiterez peut-être essayer d'utiliser ++ ou -- pour incrémenter et décrémenter une variable. Il n’existe pas un tel opérateur en Python. L'erreur se produit dans le code suivant :

C'est peut-être ce que vous voulez faire :

spam = 1 
spam += 1
Copier après la connexion

17)忘记为方法的第一个参数添加self参数(导致“TypeError: myMethod() takes no arguments (1 given)”) 该错误发生在如下代码中:

class Foo(): def myMethod(): 
       print('Hello!') a = Foo() a.myMethod()
Copier après la connexion


 

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal