Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2016 15:52:05

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

IceIsNice
мне надо просто вернуть из него одно из двух значений:
Вернуть из цикла? Цикл - это не та конструкция, которая что-то возвращает. Вы не понимаете основ, идите учитесь на простейших задачах.



Офлайн

#2 Ноя. 16, 2016 15:57:17

IceIsNice
Зарегистрирован: 2016-11-14
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

FishHook
да как он может что-то перебирать, есть он выполняется один раз и вы его принудительно завершаете в любом случае?

Тут не весь код
тут просто одна функция с циклом…
Данная функция вызывается в ДРУГОМ цикле, и она обязана каждый раз стартовать заново и каждый раз завершатся. Вы меня просто не поняли

И цикл работает очень хорошо, если я удалю оператор else

def srch(cell,n):
while rn_out_sheet['F'+str(n)].value !=None:

if rn_out_sheet['F'+str(n)].value == cell:
cell = rn_out_sheet['H'+str(n)].value

n += 1
return cell

В данном случае все хорошо отрабатывается, но если условие истинно

Офлайн

#3 Ноя. 16, 2016 16:02:08

izekia
От:
Зарегистрирован: 2008-07-19
Сообщения: 317
Репутация: +  12  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

IceIsNice
во первых

  is None



Офлайн

#4 Ноя. 16, 2016 16:02:40

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

Я кажется что-то слегка понял, вы наверное, не понимаете, что return можно сделать из любого места функции.



Офлайн

#5 Ноя. 16, 2016 19:05:23

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

izekia
во первых
is None

Тогда уж is not None

IceIsNice
Код конечно волшебен, но ИМХО не работает из за кодировок.

Попробуй для начала заменить
  
cell = 'Нет в работе'
# на 
cell = 'nothing found'

Офлайн

#6 Ноя. 16, 2016 22:43:41

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

FishHook
Вернуть из цикла? Цикл - это не та конструкция, которая что-то возвращает.
это так…но

 def f():
   for i in seq1:
       yield i
А ТС похоже надо смотреть merge, zip для общнго образования.

А конкретно то что он хочет
 result = a.update(b)
где a- {“A1”:“v1”} - значения из первого файла, b значения из второго файла. По поводу эксела как обычно скажу - выкинуть в топку а работать надо с текстовыми файлами.



Отредактировано doza_and (Ноя. 16, 2016 22:50:39)

Офлайн

#7 Ноя. 17, 2016 00:13:13

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

doza_and
merge, zip для общнго образования.

Штуки прикольные. Но вы уверены что их стоит рассматривать? Они несколько неинтуитивные, запутанные, и не имют аналогов в других языках…

Тут многие пытаются соревноваться с С++ в виде

(map(zip(…join for и т.д

Но нафига?

У меня есть сертификат (с какогото, как щас модно говорить “хакатона”) по этим приколам в виде “—–x+++++”

Но в жизни неюзабельно.

Офлайн

#8 Ноя. 17, 2016 01:09:34

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

map с zip не юзабельны???
Пошел переписывать свой код к чертям собачьим

Офлайн

#9 Ноя. 17, 2016 10:03:00

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2823
Репутация: +  185  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

> Они несколько неинтуитивные, запутанные, и не имют аналогов в других языках…

Любой язык сколь нибудь поддерживающий ФП имеет хотя-бы аналогичные функции. А если они кажутся не интуитивными или запутанными, то значит что ты ещё до ФП не дорос.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Ноя. 17, 2016 10:05:26)

Офлайн

#10 Ноя. 17, 2016 11:31:56

IceIsNice
Зарегистрирован: 2016-11-14
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Оператор While + If и не правильно работающий else

Решил я эту задачу, просто с утра свежим взглядом получается я else неправильно делал, ошибка была примитивна, строка n += 1 стояла не в том месте (до этого данная строка шла после else).

def srch(cell,n):
while rn_out_sheet['F'+str(n)].value != None:
if rn_out_sheet['F'+str(n)].value == cell:
cell = rn_out_sheet['H'+str(n)].value
return cell
n += 1
else:
cell = None
return cell

Отредактировано IceIsNice (Ноя. 17, 2016 11:32:08)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version