Retrait Prévu?
Je suis une sorte de python et de travailler sur un petit texte de l'aventure, il se passe bien jusqu'à maintenant, je suis actuellement à la mise en œuvre d'une épée système où si vous avez une certaine taille de l'épée vous pouvez tuer certains de la taille des monstres. Je suis en train de coder un autre monstre de rencontre et j'ai codé l'épée des trucs, mais je suis en train de finir avec un else
à la if...elif...elif
instruction et même si je l'ai dans le retrait droit il encore dit de retrait prévu je ne sais pas quoi faire voici le code:
print ('you find a monster about 3/4 your size do you attack? Y/N')
yesnotwo=input()
if yesnotwo == 'Y':
if ssword == 'Y':
print ('armed with a small sword you charge the monster, you impale it before it can attack it has 50 gold')
gold += 50
print ('you now have ' + str(gold) + ' gold')
elif msword == 'Y':
print ('armed with a medium sword you charge the monster, you impale the monster before it can attack it has 50 gold')
gold += 50
print ('you now have ' + str(gold) + ' gold')
elif lsword == 'Y':
print ('armed with a large broadsword you charge the beast splitting it in half before it can attack you find 50 gold ')
gold += 50
print ('you now have ' + str(gold) + ' gold')
else:
- Assurez-vous que vous utilisez le même type de grille (c'est à dire l'espace vs onglet)
- Aussi, si il n'y a vraiment pas de code sous la
else
, vous obtiendrez une erreur d'indentation. - Est-ce juste un extrait de votre code?
- aussi lorsque j'essaie d'exécuter la présente partie du code, rien de tout cela fonctionne peut-être c'est parce que j'ai des erreurs plus haut et je vais vérifier et peut-être parce que la si le reste n'a pas un d'autre de toute façon sa façon d'être capricieux
- oui ses un extrait et j'ai été en utilisant les onglets pour autant que je peux dire
- Veuillez lire le Guide de Style pour le Code Python: "les Espaces sont privilégiées à l'indentation de la méthode. Onglets doivent être utilisés uniquement pour rester cohérent avec le code qui est déjà en retrait avec des onglets."
Vous devez vous connecter pour publier un commentaire.
Il y a, en fait, plusieurs choses que vous devez savoir à propos de l'indentation en Python:
Python se soucie vraiment de retrait.
Dans d'autres langues, le retrait n'est pas nécessaire, mais seulement d'améliorer la lisibilité. En Python, l'indentation est nécessaire et remplace les mots-clés
begin /end
ou{ }
d'autres langues.Ceci est vérifié avant l'exécution du code. Par conséquent, même si le code de l'indentation d'erreur n'est jamais atteint, il ne fonctionnera pas.
Il existe différents retrait des erreurs et vous lire m'aide énormément:
1.
IndentationError: expected an indented block
Il y a plusieurs raisons pourquoi vous pouvez avoir une erreur, mais la raison commune sera:
:
sans un retrait du bloc-dessous.Voici deux exemples:
L'exemple 1, non dentelé bloc:
D'entrée:
De sortie:
Les états de sortie que vous avez besoin d'avoir un retrait de bloc sur la ligne 4, après le
else:
déclaration.L'exemple 2, unindented bloc:
D'entrée:
Sortie
Les états de sortie que vous avez besoin d'avoir un retrait de bloc sur la ligne 2, après le
if 3 != 4:
déclaration.2.
IndentationError: unexpected indent
Il est important pour le retrait des blocs, mais uniquement les blocs qui doivent être mises en retrait. Cette message d'erreur indique:
- Vous avez un retrait bloc sans
:
avant.Exemple:
D'entrée:
De sortie:
Les états de sortie qu'il ne m'attendais pas à un retrait du bloc sur la ligne 2. Vous devriez corriger ce problème en supprimer le tiret.
3.
TabError: inconsistent use of tabs and spaces in indentation
Finalement, pour en revenir à votre problème:
Il suffit de regarder le numéro de la ligne de l'erreur, et fixer à l'aide de l'information précédente.