Уведомления

Группа в Telegram: @pythonsu

#1 Май 11, 2010 06:55:20

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Проверка двух аргументов в raw_input

while True:
x = raw_input('Input SW and Port :')
if x == 'q': break
elif x == '': continue
res1 = chek_sw(x()[0])
if res1:
return True
else:
print 'Not found SW!!!'
как проверить в торой аргумент на int() если нет то вернуться continue?



Офлайн

#2 Май 11, 2010 07:00:11

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Проверка двух аргументов в raw_input

какой второй?
в коде ошибка: "chek_sw(x())" - x - переменная, а не ф-ия

Офлайн

#3 Май 11, 2010 07:05:21

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Проверка двух аргументов в raw_input

o7412369815963
какой второй?
в коде ошибка: "chek_sw(x())" - x - переменная, а не ф-ия
def add_multic_bind():
while True:
bind_mulic = raw_input('Input SW and Port :')
if bind_mulic == 'q': sys.exit()
elif bind_mulic == '': continue
elif bind_mulic == 'n': return
res1 = chek_sw(bind_mulic.split()[0])
if res1:
return True
else:
print 'Not found SW!!!'

def chek_sw(bind_mulic):
f11 = open('/home/bin/dlink.lst').readlines()
for line3 in f11:
if bind_mulic in line3:
if bind_mulic.split() == line3.split():
return line3



Офлайн

#4 Май 11, 2010 10:50:36

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Проверка двух аргументов в raw_input

Офлайн

#5 Май 13, 2010 04:39:24

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Проверка двух аргументов в raw_input

Вернусь опять к своей теме:

как проверить по отдельности аргументы все понятно, а как получить результат если одно из условий не прошло вывести именно ту ошибку где условия не прошли и вернуть на продолжения ввода. А если два условия прошли то выполнить далее действия.
вот мой код:

def tt():
try:
while True:
line = raw_input('Input SW and Port :')
if line == 'q':
break
elif line == '':
continue
res = chek_sw(line.split()[0])
res1 = chek_ports(line.split()[1])
if (res,res1):
print 'Good!!!'
else:
print 'Not good!!!'
except Exception:
print 'Input 2 arguments'

def chek_sw(line):
f11 = open('/home/bin/dlink.lst').readlines()
for line3 in f11:
if line in line3:
if line.split() == line3.split():
return line3

def chek_ports(line):
if re.match(r'^\d+$',line):
return line



Офлайн

#6 Май 13, 2010 08:16:20

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Проверка двух аргументов в raw_input

while True:
...
if res and res1: break
else: print 'error parametrs'
doProcess()

Отредактировано (Май 13, 2010 08:16:56)

Офлайн

#7 Май 13, 2010 08:20:35

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Проверка двух аргументов в raw_input

вместо эксепшена лучше проверить на кол-во параметров:

while 1:
prm = raw_input('Input SW and Port :').split()
if len(prm)!=2:
print 'Input 2 arguments'
continue
if chek_sw(prm[0]) and chek_ports(prm[1]): break
else: print 'error parametrs'
чет типа такого

Офлайн

#8 Май 13, 2010 08:26:50

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Проверка двух аргументов в raw_input

o7412369815963
вместо эксепшена лучше проверить на кол-во параметров:
while 1:
prm = raw_input('Input SW and Port :').split()
if len(prm)!=2:
print 'Input 2 arguments'
continue
if chek_sw(prm[0]) and chek_ports(prm[1]): break
else: print 'error parametrs'
чет типа такого
o7412369815963, Спасибо, за помощь!!!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version