Найти - Пользователи
Полная версия: ПомогитеПлиииз)
Начало » Python для новичков » ПомогитеПлиииз)
1 2
DimaHP
Надеюсь очень на Вашу помощь. Нужно создать простую программу экспоненциальной или факториальной сложности в Питоне 3.1 (число Фибоначи не подходит). Сам сделать не могу , потому что нуб ))) Или же помогите доделать программу до конца. Смысл в том что, у пользователся спрашивается длина пароля(например n=2), потом выдаются все вариации пароля из английского алфавита от a -z. Получится должно :
aa,ab,ac…ba,bb,bc…ca,cb и т.д. Как исправить эту программу? Заранее спасибо, Дмитрий
print (“Напишите длину пароля”)
длина_пароля=input()
b =

def perm(algus,veel):
if len(veel)==1:
print(algus+veel)
else:
for i in range(0,len(veel)):
perm(algus+veel,veel+veel)
perm(' ',b)
Получается что выдаются все вариации из алфавита, а мне нужно только конкретные вариации по запросу пользователся, если пользователь выбирает длину пароля 2, то и выдается длина пароля из 2 букв различных вариаций….Надеюсь Вы поняли меня)))
dartNNN
Все намного проще, чем вы думаете:)

берем модуль itertools из стандартной библиотеки и начинаем веселиться:
>>> perms = itertools.permutations([1, 2, 3], 2) 
>>> next(perms)
(1, 2)
>>> next(perms)
(1, 3)
>>> next(perms)
(2, 1)
>>> next(perms)
(2, 3)
>>> next(perms)
(3, 1)
>>> next(perms)
(3, 2)
Оно? Заодно глянте полные доки на этот модуль, там столько всего:)
И заодно почитайте “Dive Into Python 3” (собственно пример прям оттуда скопипастил:))
DimaHP
Благодарю за ответ. Я еще раз повторяюсь, что я нуб в Питоне ))) Мне в эту задачу, что я написал надо добавить perms = itertools.permutations(, 2) ? если да, то куда? Вы не могли бы на моей задаче конкретно написать что и куда вставлять?))Я вообще не знаком с модулями и без понятия как их использовать. Мне нужно именно эта задача и с этими условиями на Питоне 3.1….
pasaranax
print("Напишите длину пароля")
pwdLen=input()
b = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V', 'W','X','Y','Z']
for pwd in itertools.permutations(b, pwdLen):
print pwd
почитай же доки
DimaHP
import itertools
print("Напишите длину пароля")
pwdLen=input()
b = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V', 'W','X','Y','Z']
for pwd in itertools.permutations(b, pwdLen):
print (pwd)
def perm(algus,veel):
if len(veel)==1:
print(algus+veel[0])
else:
for i in range(0,len(veel)):
perm(algus+veel[i],veel[:i]+veel[i+1:])
perm(' ',b)
Вы это имели ввиду ? Если да, то выдает ошибку -TypeError: Expected int as r
Пробывал только эту строку
 import itertools
print("Напишите длину пароля")
pwdLen=input()
b = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V', 'W','X','Y','Z']
for pwd in itertools.permutations(b, pwdLen):
print (pwd)
Таже ошибка…
Да я читаю уже про itertools, со вчерашнего дня сижу над этой задачей просто)itertools только в питоне 2.6 может работает?
vaxXxa
itertools работает нормально..
просто импорт сделай правильным, без отступа в один пробел!!! это же Питон.
DimaHP
Это скопировал неправильно просто) Ошибка таже
import itertools
print("Напишите длину пароля")
pwdLen=input()
b = ['A','B','C']
omg = itertools.permutations(b)
for resultat in omg:
print(resultat)
Вот так работает, но если вставить туда длину пароля, т.е pwdLen, то выдает ошибку TypeError: Expected int as r
DimaHP
Ошибка в том, что возможно в Питоне 3.1 input() комманда используется по другому, если я поставлю pwdLen =5, и в omg = itertools.permutations(b, pwdLen), то все отлично работает. Но когда использую input() - ОШИБКА. Поиогите разобраться с этим..
knkd
input(3.1) == raw_input(2.6)
import itertools
print("Напишите длину пароля")
pwd_len=int(input())
b = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V', 'W','X','Y','Z']
omg = itertools.permutations(b, pwd_len)
for resultat in omg:
print(resultat)
Блин, кстати забыл что в Python выдаёт символы по классу. Например по “А-Я” выдаст полный алфавит.
Что то такое когдато читал, но забыл…
DimaHP
Ура, сработало !!!Спасибо Всем большое)))knkd Тебе особенно)))Единственно, что не правильно, то что выдается:
A.B.C
A.B.D
A.B.E
A.B.F
а должно:
A.A.A
A.A.B
A.A.C
A.A.D
…….
A.B.A
A.B.C
…..
=))))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB