Найти - Пользователи
Полная версия: нужна помошь по нескольким вопросам
Начало » Python для новичков » нужна помошь по нескольким вопросам
1
@cckyi_boxxx
вобщем только начинаю учить питон поэтому просьба не кидать в меня помидорами , и возник следующий вопрос

вот мой быдлокод для проверки надежности пароля :

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
когда symbols станет истиной то надо прикончить цикл , пробовал играться с break но безрезультатно , так-же возникала мысль заюзать while вместо for но ничего путного в голову так и не пришло


и второй вопрос :
подскажите плз либу для работы с tcp протоколом (т.е. дающую возможность полностью вручную создавать tcp пакеты и отправлять их туда куда мне нужно)
FishHook
>>> 
def x():
for i in range(1000):
return i


>>> x()
0
@cckyi_boxxx
чет я тебя не пойму , как твой код может мне помочь , темболее нерабочий код , да будет тебе известно return-ом можно вернуть только одну переменную а не кучу если надо кучу забивай в массив и его выводи ретурном

мой вопрос еще актуален
FishHook
Как то у тебя все слишком сложно. Так нельзя что-ли?
# -*- 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))
 
Нету букаф. Короткий.
Нету цыфар. Короткий.
Короткий.
Пароль хороший, годный
FishHook
@cckyi_boxxx
да будет тебе известно return-ом можно вернуть только одну переменную а не кучу
не болтай ерундой
def u(x):
return 1,2,3,4

print u(9)
(1, 2, 3, 4)
>>>
@cckyi_boxxx
спс за помощь , самому такой код мне точно было-бы не написать , а по поводу твоего примера удивило но сейчас перечитал ман и понял нельзя несколько ретурнов делать а у тебя в первом случае он срабатывает 1000 раз а во втором 1
FishHook
@cckyi_boxxx
спс за помощь , самому такой код мне точно было-бы не написать , а по поводу твоего примера удивило но сейчас перечитал ман и понял нельзя несколько ретурнов делать а у тебя в первом случае он срабатывает 1000 раз а во втором 1
Да нет же! По ретурну происходит выход из функции и плевать в цикле он или нет. Цикл остановится на той иттерации где был вызван ретурн.
def x():
for i in range(1000):
return i
если бы тут ретурн срабатывал тысячу раз, то на печать вышла бы цифра 999. А вышел 0. Цикл отработал только одну иттерацию и произошел выход из функции.
> нельзя несколько ретурнов делать
Да хоть сто их делай. Но отработает тот до которого вперед дойдет курсор выполнения скрипта.
def x(y):
if y>0: return "Ох ё! Он больше нуля!"
else: return "Блин, ну как всегда!"
return "Так не бывает!"
Isem
@cckyi_boxxx
спс за помощь , самому такой код мне точно было-бы не написать , а по поводу твоего примера удивило но сейчас перечитал ман и понял нельзя несколько ретурнов делать а у тебя в первом случае он срабатывает 1000 раз а во втором 1
Лучший способ решить задачу - это подумать.
@cckyi_boxxx
понял пошел … значит учебник у мну хреновый , буду дальше учить по другому ману , ещещ раз спс за инфу
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