L'une des choses que vous rencontrerez toujours lors de la ** programmation ** est ** l'erreur **. Quand j'ai lancé le programme, j'ai écrit si dur, j'ai eu une longue phrase en anglais que je ne comprenais pas! Je pense que beaucoup de gens sont frustrés parce que cette erreur ne peut pas être résolue. Dans cet article, je vais vous expliquer les causes des erreurs dans ** Python ** et comment les résoudre.
)
ou oubliez d'écrire les deux points :
dans l'espace pleine largeur, l'instruction ʻif, l'instruction
for et l'instruction
while`.
De là, je vais expliquer avec quelques exemples.** S'il n'y a pas de parenthèse ** ()
ou si vous oubliez de le fermer,
SyntaxError: unexpected EOF while parsing
J'obtiens l'erreur.
hello_world1.py
print("Hello, world!"
# SyntaxError: unexpected EOF while parsing
Dans ce code, j'ai oublié de fermer les parenthèses, donc j'obtiens l'erreur "** Il y a une fin inattendue de la phrase **". Fermez les parenthèses pour éliminer l'erreur.
hello_world2.py
print("Hello, world!")
# Hello, world!
Si ** l'espace pleine largeur ** est mélangé dans le code,
SyntaxError: invalid character in identifier
J'obtiens l'erreur.
circle1.py
r = 2
pi = 3.14
# ^C'est difficile à comprendre, mais il y a un espace pleine largeur ici(Le soulignement rouge est affiché)
print(r ** 2 * 3.14)
# SyntaxError: invalid character in identifier
Les espaces pleine largeur sont difficiles à trouver, mais trouvons le nombre de lignes line (number)
affiché dans l'erreur comme un indice et corrigeons-le.
circle2.py
r = 2
pi = 3.14
print(r ** 2 * 3.14)
# 12.56
Si vous oubliez d'ajouter ** deux-points ** :
à la fin des lignes telles que l'instruction ʻif, l'instruction
for, l'instruction
while, **
SyntaxError: invalid syntax`**
J'obtiens l'erreur.
ten1.py
i = 10
if i == 10
print("j'ai 10 ans")
else
print("je n'ai pas 10 ans")
# SyntaxError: invalid syntax
La solution est d'ajouter un deux-points à la fin de chaque phrase «si», «sinon».
ten2.py
i = 10
if i == 10:
print("j'ai 10 ans")
else:
print("je n'ai pas 10 ans")
#j'ai 10 ans
Si la variable appelée est indéfinie ou mal orthographiée,
** NameError: name'variable name 'n'est pas défini
**
J'obtiens l'erreur.
year1.py
year = 2020
print(Year)
print(month)
# NameError: name 'Year' is not defined
Faites attention à la distinction entre les minuscules et les majuscules. Puisque le programme est exécuté à partir du dessus, il n'est pas mentionné que la variable «mois» n'est pas définie, mais cela provoque également une erreur.
year2.py
year = 2020
print(year)
# 2020
month = 3
print(month)
# 3
str ()
ou ʻint () `pour convertir.Lors de l'exécution de calculs ou de la combinaison de chaînes de caractères par print ()
ou de l'assignation à des variables, le type de chaîne de caractères str
et le type numérique int
ne peuvent pas être utilisés en même temps, et si vous essayez de les utiliser
** TypeError: Impossible de convertir le'type 1'objet en (type 2) implicitement
**
J'obtiens l'erreur.
price1.py
price = 100
print("Ce produit est" + price + "C'est un cercle.")
# TypeError: Can't convert 'int' object to str implicitly
Puisque «100», qui est de type «int», est affecté à «prix», il ne peut pas être combiné avec le type «str». Dans ce cas, utilisez la fonction «str ()» pour convertir le type «price» en «str».
De même, si vous voulez convertir le type str
en type ʻint dans le calcul numérique, utilisez la fonction ʻint ()
.
price2.py
price = 100
print("Ce produit est" + str(price) + "C'est un cercle.")
#Ce produit est de 100 yens.
La même chose est vraie pour les arguments d'autres fonctions telles que len ()
.
et que ʻelse
est traité.S'il y a une erreur dans le retrait,
IndentationError: unindent does not match any outer indentation level
J'obtiens l'erreur.
Il n'existe qu'une seule solution de contournement pour cette erreur. "** Vérifiez le retrait **". Vérifiez si la touche tab
et deux espaces demi-largeur sont mélangés.
nine1.py
number = 99999
if number % 9 == 0:
print("nombre est un multiple de 9.")
else:
print("le nombre n'est pas divisible par 9.")
# ^^Il y a deux espaces demi-largeur ici.
# IndentationError: unindent does not match any outer indentation level
Assurez-vous que vous avez un retrait. Aussi, sortons ʻelse`.
nine2.py
number = 99999
if number % 9 == 0:
print("nombre est un multiple de 9.")
else:
print("le nombre n'est pas divisible par 9.")
#nombre est un multiple de 9.
Lorsque vous spécifiez un élément de list
ou str
, si vous spécifiez un numéro d'index qui n'existe pas
** ʻIndexError: (type) index hors plage` **
J'obtiens l'erreur.
abc1.py
l = ["a","b","c"]
print(l[3])
# IndexError: list index out of range
Le numéro d'index du troisième élément sera "2" au lieu de "3". Notez que le numéro d'index du premier élément est «0». L'élément le plus à droite peut également être spécifié avec «-1».
abc2.py
l = ["a","b","c"]
print(l[2])
# c
Si vous appelez un module qui n'existe pas (ou l'objet spécifié par from import
),
ʻImportError: Aucun module nommé'specified module'`
J'obtiens l'erreur.
math1.py
import maths
print(maths.sqrt(2))
# ImportError: No module named 'maths'
Le module maths
n'existe pas. Réécrivons-le comme math
.
math2.py
import math
print(math.sqrt(2))
# 1.4142135623730951
Quand j'ai exécuté le «code d'erreur» dans l'environnement «Python 3.8.2»,
ModuleNotFoundError: No module named 'maths'
Est affiché comme une erreur. L'erreur ci-dessus a été affichée dans Python3.4.3
, donc elle peut être différente selon la version, mais je ne pense pas qu'il y ait de problème particulier.
Recommended Posts