Форум сайта python.su
IceIsNiceВернуть из цикла? Цикл - это не та конструкция, которая что-то возвращает. Вы не понимаете основ, идите учитесь на простейших задачах.
мне надо просто вернуть из него одно из двух значений:
Офлайн
FishHook
да как он может что-то перебирать, есть он выполняется один раз и вы его принудительно завершаете в любом случае?
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
Офлайн
IceIsNice
во первых
is None
Офлайн
Я кажется что-то слегка понял, вы наверное, не понимаете, что return можно сделать из любого места функции.
Офлайн
izekia
во первых
is None
cell = 'Нет в работе' # на cell = 'nothing found'
Офлайн
FishHookэто так…но
Вернуть из цикла? Цикл - это не та конструкция, которая что-то возвращает.
def f(): for i in seq1: yield i
result = a.update(b)
Отредактировано doza_and (Ноя. 16, 2016 22:50:39)
Офлайн
doza_and
merge, zip для общнго образования.
Офлайн
map с zip не юзабельны???
Пошел переписывать свой код к чертям собачьим
Офлайн
> Они несколько неинтуитивные, запутанные, и не имют аналогов в других языках…
Любой язык сколь нибудь поддерживающий ФП имеет хотя-бы аналогичные функции. А если они кажутся не интуитивными или запутанными, то значит что ты ещё до ФП не дорос.
Отредактировано Rodegast (Ноя. 17, 2016 10:05:26)
Офлайн
Решил я эту задачу, просто с утра свежим взглядом получается я 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)
Офлайн