Форум сайта python.su
14
вобщем только начинаю учить питон поэтому просьба не кидать в меня помидорами , и возник следующий вопрос
вот мой быдлокод для проверки надежности пароля :
def check_valid_passw(passw):
alfavit = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
ints = "0123456789"
for tmp in alfavit :
if tmp not in passw :
symbols = False
accept_message1 = "пасс не содержит букв"
else :
symbols = True
for tmp2 in ints:
if tmp2 not in passw :
integers = False
accept_message2 = "пасс не содержит цифры"
else :
integers = True
if len(passw) > 16 :
length = True
else :
length = False
accept_message3 = "короткий пасс"
print symbols , integers , length # для дебага
if symbols & integers & length :
return True
else :
return False
passwrrr = "A111111111dddddddddddddddddd9"
a = check_valid_passw(passwrrr)
print a
for tmp in alfavit :
if tmp not in passw :
symbols = False
accept_message1 = "пасс не содержит букв"
else :
symbols = True
Офлайн
568
>>>
def x():
for i in range(1000):
return i
>>> x()
0
Отредактировано (Янв. 13, 2012 06:31:30)
Офлайн
14
чет я тебя не пойму , как твой код может мне помочь , темболее нерабочий код , да будет тебе известно return-ом можно вернуть только одну переменную а не кучу если надо кучу забивай в массив и его выводи ретурном
мой вопрос еще актуален
Офлайн
568
Как то у тебя все слишком сложно. Так нельзя что-ли?
# -*- coding:utf-8 -*-
import string
def pass_validator(pwd):
message=''
if not [x for x in pwd if x in string.digits]:
message+=u" Нету цыфар."
if not [x for x in pwd if x in string.letters ]:
message+=u" Нету букаф."
if len(pwd)<16:
message+=u" Короткий."
return message
mess=lambda x: x if x else u" Пароль хороший, годный"
p1="12345"
p2="wefwJUHG"
p3="12phd"
p4="234ajvabrveauaHIUGHILUGLIUGUIGLIUGLIUGIUGHLUG"
print mess(pass_validator(p1))
print mess(pass_validator(p2))
print mess(pass_validator(p3))
print mess(pass_validator(p4))
Нету букаф. Короткий.
Нету цыфар. Короткий.
Короткий.
Пароль хороший, годный
Офлайн
568
@cckyi_boxxxне болтай ерундой
да будет тебе известно return-ом можно вернуть только одну переменную а не кучу
def u(x):
return 1,2,3,4
print u(9)
(1, 2, 3, 4)
>>>
Офлайн
14
спс за помощь , самому такой код мне точно было-бы не написать , а по поводу твоего примера удивило но сейчас перечитал ман и понял нельзя несколько ретурнов делать а у тебя в первом случае он срабатывает 1000 раз а во втором 1
Офлайн
568
@cckyi_boxxxДа нет же! По ретурну происходит выход из функции и плевать в цикле он или нет. Цикл остановится на той иттерации где был вызван ретурн.
спс за помощь , самому такой код мне точно было-бы не написать , а по поводу твоего примера удивило но сейчас перечитал ман и понял нельзя несколько ретурнов делать а у тебя в первом случае он срабатывает 1000 раз а во втором 1
def x():
for i in range(1000):
return i
def x(y):
if y>0: return "Ох ё! Он больше нуля!"
else: return "Блин, ну как всегда!"
return "Так не бывает!"
Отредактировано (Янв. 13, 2012 10:23:36)
Офлайн
7
@cckyi_boxxxЛучший способ решить задачу - это подумать.
спс за помощь , самому такой код мне точно было-бы не написать , а по поводу твоего примера удивило но сейчас перечитал ман и понял нельзя несколько ретурнов делать а у тебя в первом случае он срабатывает 1000 раз а во втором 1
Офлайн
14
понял пошел … значит учебник у мну хреновый , буду дальше учить по другому ману , ещещ раз спс за инфу
Офлайн