Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous !
Je me suis lancé dans python version3, et pour m’entraîner, j'ai imaginé un exercice que je devais deviner un mot de passe par caractère et non pas le chiffre entier !
sauf que je bug et j'ai toujours du mal à comprendre la boucle FOR ^^' et c'est pour ca que je poste dans cette section.
je sais que je peux utiliser la boucle FOR en incrémentant chaque caractère si il est exact mais je sais pas comment ordonné tout ca.
Voici mon bout de code:
print("###### Deviner MDP par Bruteforce ######")
import random
MDPcoffre=random.randint(9,9999)
i = MDPcoffre
print("Le coffre-fort a été vérroullé !")
print(" vous sondez le coffre .... ")
print("Vous avez pu savoir que le mot de passe était d'une longueur de",len(str(i)), "chiffres")
while 1:
tentative=int(input("entrer un nombre en vous aidant de la longueur trouvé: "))
J=list(str(tentative))
L=list(str(i))
voila donc je tente tous les moyen mais du mal à construire mon idée .
Merci de votre aide,
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
En python 2 cela donnerais ceci:
#!/usr/bin/env python
# -*-coding:utf-8-*-
import random
MDPcoffre=random.randint(9,9999)
i = MDPcoffre
print i
print("Le coffre-fort a été vérroullé !")
print(" vous sondez le coffre .... ")
print("Vous avez pu savoir que le mot de passe était d'une longueur de",len(str(i)), "chiffres")
m = input("entrez le nombre max: ")
print m
r = 0
while (r < m):
#print r
if r == i:
print(" you win the password is", i)
quit()
else:
r = r+1
Inspire toi de ce code basique pour faire ton code en python3
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
pour le for tu peux faire
for foo in range(bar): # ou bar représente un nombre, par exemple len('hello'), la taille d'une chaine ou d'une liste
# faire des trucs, j ai mis pass ici vu qu'il y a rien dedans. Ce for est complètement inutil aussi
pass
Hors ligne
#coyotus:
Je viens de traduire ton bout de code en python 3 et tout fonctionne et d'ailleurs super ton idée pour la variable r=0 , c'était ca qui me manquais )
[== python3==]
print("###### Deviner MDP par Bruteforce ######")
import random
MDPcoffre=random.randint(9,9999)
i = MDPcoffre
print("Le coffre-fort a été vérroullé !")
print(" vous sondez le coffre .... ")
print("Vous avez pu savoir que le mot de passe était d'une longueur de",len(str(i)), "chiffres")
tenta1 = int(input("Entrer votre chiffre: "))
print("vous êtes entrain de tenter la combinaison {0} .....".format(tenta1))
r = 0
while 1:
if r < tenta1 and r == i :
print("Vous avez trouvé le mot de passe: ", i)
break
else:
print("Vous avez pas trouvé le mot de passe, lancement du bruteforce.....")
r=r+1
#WarLocG:
voila le bout de code avec la boucle FOR
[== Python3 ==]
print("###### Deviner MDP par Bruteforce ######")
import random
MDPcoffre=random.randint(9,9999)
i = MDPcoffre
print("Le coffre-fort a été vérroullé !")
print(" vous sondez le coffre .... ")
print("Vous avez pu savoir que le mot de passe était d'une longueur de",len(str(i)), "chiffres")
tenta = int(input("Entrer votre chiffre: "))
for force in range(2):
if tenta != MDPcoffre:
print("Mauvais mot de passe /!\ , entrer un nouveaux MDP !!!")
tenta = int(input("Entrer votre chiffre: "))
continue
on peut l'améliorer mais finalement , while et for c'est quasi pareil sauf qu'on utilise la boucle for lorsqu’on connait le nombre d'itération alors que while c'est autant d’itération que possible , c'est bien ca ?
Dernière modification par koorosh (20-09-2016 12:15:46)
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
ah merci beaucoup pour ces conseils ! genial ton bout de code , j' y avais pensé avec "try:" mais j'ai voulus déjà réussir à faire avec FOR .
Merci à tous de votre partage et surtout de votre aide
tenta = int(input("Entrer votre chiffre: "))
Dans cette ligne, si l'utilisateur entre 'abc' par exemple (une string en fait mais cela fonctionne avec un dict, une liste, un tupple ect), le programme crash avec une erreur de types.
Ce mini snippet (vive les pléonasmes \o/) illustre une façon parmi tant d'autres de vérifier les saisis utilisateurs.
Ah donc si j'enlève le int, le morceau de code si-dessous me sera plus utile ! c'est ben ca que tu essay de me dire ?
[== Indéfini ==]
J=list(str(tentative))
L=list(str(i))
Dernière modification par koorosh (20-09-2016 12:57:34)
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
ah oui autant pour moi , trop python dans ma tête ca part dans tous les sens ! une pause s'impose
Merci parker pour tes lumières !!!!!
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
je rajoute ce site qui est un site de challenge en programmation spécialisé en python : https://callicode.fr/pydefis/
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
je rajoute ce site qui est un site de challenge en programmation spécialisé en python : https://callicode.fr/pydefis/
mais balance ce lien dans un nouveaux post ! plus facile a suivre et plus fun je pense
vi est mon ami pour la vie
Ph'nglui nglw-nafh Cthulhu R'lyeh wgah-nagl fhtagn
Hors ligne
Pages : 1