Non ASCII caractère erreur python
Je suis un programmeur débutant d'essayer d'écrire un script python qui permettra de générer des mots de passe aléatoires. Cependant, j'ai toujours un caractère non-ASCII erreur, même si j'ai déclaré le codage #utf-8, comme mentionné dans un autre question similaire ici dans le Débordement de la Pile. C'est le code source:
import string
import random
#coding: utf-8
print "Password generator will create a random customizable password."
print "Choose your options wisely."
number = int(input("How many letters do you want in your password?"))
caps = str(input("Do you want capital letters in your password? Y/N"))
symbols = str(input( "Do you want punctuation, numbers and other symbols in your password? Y/N"))
punctuation = ("!", ".", ":", ";", ",", "?", "'", "@", "£", "$", "«", "»", "~", "^","%", "#", "&", "/", range(0, 11))
lowercase = string.ascii_lowercase
uppercase = string.ascii_uppercase
if caps == "N":
characters = lowercase
else:
characters = uppercase + lowercase
if symbols == "Y":
characters += punctuation
password = random.sample(characters, number)
print "The password is", password "."
C'est la sortie du terminal
pedro@pedro-Inspiron-3521:~/Desktop$ python passwordgenerator.py
Fichier "passwordgenerator.py", ligne 9
SyntaxError: Non-ASCII du caractère '\xc2' dans le fichier passwordgenerator.py sur la ligne 9, mais pas de l'encodage déclaré; voir http://www.python.org/peps/pep-0263.html pour plus de détails
J'ai vérifié le lien, mais je ne pouvais pas comprendre une chose, peut-être parce que je ne suis pas un locuteur natif anglais et depuis que j'ai commencé la programmation il n'ya pas longtemps.Merci d'avance pour votre aide.
raw_input()
sur Python 2.7 au lieu de input()
. Cette dernière est évaluée comme son entrée, c'est à dire, il fonctionne comme eval(raw_input())
.OriginalL'auteur chilliefiber | 2014-10-11
Vous devez vous connecter pour publier un commentaire.
Vous avez le
>>
et<<
symboles dans votre liste des signes de ponctuation.Elles ne sont pas valides. Tenter de trouver le code unicode au lieu
http://www.fileformat.info/info/unicode/char/bb/index.htm
http://www.fileformat.info/info/unicode/char/ab/index.htm
EDIT:
Oh, mais attendez, c'est un générateur de mot de passe, donc PAS de ne même pas mettre le double chevrons en tant que partie de la liste des signes de ponctuation, comme elles ne sont pas valides dans tout mot de passe.
Aussi, pourquoi ajoutez-vous des chiffres à la ponctuation tuple?
Pourquoi pas avec de la ficelle.la ponctuation et de la chaîne.des chiffres à la place?
Voir ma mise à jour ci-dessus
J'ai supprimé, mais ça ne marche toujours pas. J'obtiens la même erreur
Pour répondre à votre question, je n'ai aucune idée de ce qu'est un chiffre qui est, ou quelle chaîne.la ponctuation et de la chaîne.chiffres ferait. Cependant, je vais sûrement de recherche. Merci, type inconnu
Désolé @agf et de l'Apéro , ne peut pas upvote vos réponses, tenté de et elle dit de Voter nécessite 15 réputation 🙁
OriginalL'auteur Anthony Perot
La
#coding: utf-8
ligne doit être en haut du fichier à autoriser les caractères non-ASCII.£
,«
, et»
, ne sont pas au format ASCII.Alors que vous ne voulez probablement pas les caractères non-ascii dans votre mot de passe, et ils ne sont pas autorisés sur la plupart des sites, il n'y a pas de raison qu'ils ne pouvaient pas, théoriquement, être autorisée.
OriginalL'auteur agf
Si vous utilisez Mac, il existe un fichier .DS_STORE qui provoque l'ascii erreur lors de la lecture du contenu de votre dossier.
Donc faire ces si vous utilisez mac
Supprimer tous les fichiers DS_Store
Sélectionnez Applications > Utilitaires pour lancer le Terminal.
Saisissez la commande UNIX suivante:
sudo find /-name ".DS_Store" -profondeur -exec rm {} \;
Lorsque vous y êtes invité pour un mot de passe, saisissez votre Administrateur Mac OS X
mot de passe
OriginalL'auteur Deepak