Ceci est censé être un programme de générateur de code PYTHON 3.
import string from random import * print("Type Yes or No For The Following Questions:") letters = raw_input("Do you want letters in your passcode?" ) if raw_input == 'Yes': chars1 = string.ascii_letters elif raw_input == 'No': chars1 = "" digits = raw_input("Do you want digits in your passcode?" ) if raw_input == 'Yes':chars2 = string.digits elif raw_input == 'No': chars2 = "" symbols = raw_input("Do you want symbols in your passcode?" ) if raw_input == 'Yes': chars3 = string.punctuation elif raw_input == 'No': chars3 = "" requestedlength = input("What passcode length do you want? Type any number: ") length = int(requestedlength) chars = chars1 + chars2 + chars3 passcode = raw_input("Type Enter To Generate Random Passcode: ") print("".join(choice(chars) for x in range((length))))
3 Réponses :
Parce que vos déclarations si elles ne demandent pas la bonne chose
Vous définissez une variable avec l'entrée P> , puis posez si de sorte que vous êtes toujours faux et que les variables ( pour le corriger, modifiez simplement votre instruction IF P> Entrée brute code> est "oui", ce qu'il n'est jamais p>
caractères1 code> etc.) ne sont jamais définies , vous obtenez donc l'erreur p>
if letters == 'Yes': chars1 = string.ascii_letters
Changez votre typo "Entrée" dans vos if-instructions aux "lettres" et etc. pour d'autres boucles:
initialisation non requise
Voici comment je l'obtiens à travailler:
import string from random import * print("Type Yes or No For The Following Questions:") letters = input("Do you want letters in your passcode?" ) if letters == 'Yes': chars1 = string.ascii_letters elif letters == 'No': chars1 = "" digits = input("Do you want digits in your passcode?" ) if digits == 'Yes':chars2 = string.digits elif digits == 'No': chars2 = "" symbols = input("Do you want symbols in your passcode?" ) if symbols == 'Yes': chars3 = string.punctuation elif symbols == 'No': chars3 = "" requestedlength = input("What passcode length do you want? Type any number: ") length = int(requestedlength) chars = chars1 + chars2 + chars3 passcode = input("Type Enter To Generate Random Passcode: ") print("".join(choice(chars) for x in range((length))))
Vos variables sont définies à l'intérieur de la si elles sont donc limitées à celle-ci si
Que se passe-t-il si l'utilisateur n'entre ni
oui code> ni
non code>? Aussi
raw_input == 'oui' code> n'a pas de sens. Vous devriez vérifier contre votre variable, par exemple.
lettres code> ou
chiffres code>.
De plus, si vous apprenez simplement Python, commencez par Python3.
juste un avertissement que le choix n'est pas cryptographiquement aléatoire