0
votes

Variable non définie après des conditions

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


4 commentaires

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 ni non ? Aussi raw_input == 'oui' n'a pas de sens. Vous devriez vérifier contre votre variable, par exemple. lettres ou chiffres .


De plus, si vous apprenez simplement Python, commencez par Python3.


juste un avertissement que le choix n'est pas cryptographiquement aléatoire


3 Réponses :


1
votes

Parce que vos déclarations si elles ne demandent pas la bonne chose

Vous définissez une variable avec l'entrée P> xxx pré>

, puis posez si Entrée brute code> est "oui", ce qu'il n'est jamais p> xxx pré>

de sorte que vous êtes toujours faux et que les variables ( caractères1 code> etc.) ne sont jamais définies , vous obtenez donc l'erreur p>

pour le corriger, modifiez simplement votre instruction IF P>

if letters == 'Yes': chars1 = string.ascii_letters 


0 commentaires

0
votes

Changez votre typo "Entrée" dans vos if-instructions aux "lettres" et etc. pour d'autres boucles: xxx


1 commentaires

initialisation non requise



0
votes

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


0 commentaires