Maison  >  Article  >  développement back-end  >  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

怪我咯
怪我咯original
2017-04-06 11:48:141159parcourir

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!')

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!')

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!')

ou :

if spam == 42: 
print('Hello!') 
print('Howdy!')

ou :

 if spam == 42: 
print('Hello!')

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])

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)

lorsque vous souhaitez réellement faire ceci :

spam = 'I have a pet cat.' 
spam = spam[:13] + 'r' + spam[14:] print(spam)

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.')

lorsque vous souhaitez réellement faire ceci :

numEggs = 12 print('I have ' + str(numEggs) + ' eggs.')

ou :

 numEggs = 12 print('I have %s eggs.' % (numEggs))

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!)

ou :

myName = 'Al' print('My name is ' + myName + . How are you?')

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)

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()

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])

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'])

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'
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

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()

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

spam = range(10) 
spam[4] = -1

(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
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

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

class Foo(): def myMethod(): 
       print('Hello!') a = Foo() a.myMethod()


 

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
Article précédent:Encodage Python et UnicodeArticle suivant:Encodage Python et Unicode