Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2012 13:51:02

neirol
От:
Зарегистрирован: 2012-01-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить если можно программу и сделать ее "executable"

import random
import win32clipboard
import sys

params = sys.argv
pass_len = 8

digits = (0,1,2,3,4,5,6,7,8,9)
lower_letters = ('a','b','c','d','e','f','g','h','i','j','k')
upper_letters = ('A','B','C','D','E','F','G','H','I','J','K')

try:
try:
if int(params[1]) > 0:
pass_len = int(params[1])
except IndexError:
pass_len = 8
except ValueError:
if params[1] == 'help':
sys.exit('Синтаксис вызова программы: pasgen.py [длина пароля] [тип используемых символов]\nТипы используемых символов:\r\n1 - цифры\r\n2 - латинские буквы в нижнем регистре\r\n3 - цифры и латинские буквы в нижнем регистре\r\nпо умолчанию - цифры и буквы в обоих регистрах')

try:
if params[2] == '1':
symbs = digits
elif params[2] == '2':
symbs = lower_letters
elif params[2] == '3':
symbs = digits + lower_letters
else:
symbs = digits + lower_letters + upper_letters
except IndexError:
symbs = digits + lower_letters + upper_letters

password = ''
i = 0

while i < pass_len:
password = password + str(symbs[round(random.random() * (len(symbs) - 1))])
i = i + 1

win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(password)
print(password)
Написал первую программу. Вопрос как улучшить ее, если можно, в какую сторону копать дальше?
И писал я ее на версии 3.2, а хотелось бы получить ее .exe версию, как можно это сделать?



Отредактировано (Янв. 17, 2012 23:09:16)

Офлайн

#2 Янв. 17, 2012 15:37:37

agalen
От:
Зарегистрирован: 2011-03-23
Сообщения: 185
Репутация: +  17  -
Профиль   Отправить e-mail  

Как улучшить если можно программу и сделать ее "executable"

Случайная строка из заданного набора символов:

def gen( symbols, length ):
return "".join( random.choice(symbols) for i in range( length ) )
Сделать exe можно с помощью py2exe или cx_freeze



Офлайн

#3 Янв. 17, 2012 23:15:27

neirol
От:
Зарегистрирован: 2012-01-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить если можно программу и сделать ее "executable"

Внес такую правку, без str() отказался компилировать.

password = ''.join(str(random.choice(symbs)) for i in range(pass_len))
Все работает, спасибо!



Отредактировано (Янв. 17, 2012 23:15:46)

Офлайн

#4 Янв. 18, 2012 01:06:07

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Как улучшить если можно программу и сделать ее "executable"

Вместо

password = ''
i = 0

while i < pass_len:
password = password + str(symbs[round(random.random() * (len(symbs) - 1))])
i = i + 1
лучше использовать
password = random.sample(symbs, pass_len)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version