Найти - Пользователи
Полная версия: Оператор While + If и не правильно работающий else
Начало » Python для новичков » Оператор While + If и не правильно работающий else
1 2 3
FishHook
IceIsNice
мне надо просто вернуть из него одно из двух значений:
Вернуть из цикла? Цикл - это не та конструкция, которая что-то возвращает. Вы не понимаете основ, идите учитесь на простейших задачах.
IceIsNice
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

В данном случае все хорошо отрабатывается, но если условие истинно
izekia
IceIsNice
во первых
  is None
FishHook
Я кажется что-то слегка понял, вы наверное, не понимаете, что return можно сделать из любого места функции.
Iskatel
izekia
во первых
is None

Тогда уж is not None

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

Попробуй для начала заменить
  
cell = 'Нет в работе'
# на 
cell = 'nothing found'
doza_and
FishHook
Вернуть из цикла? Цикл - это не та конструкция, которая что-то возвращает.
это так…но

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

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

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

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

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

Но нафига?

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

Но в жизни неюзабельно.
4kpt_IV
map с zip не юзабельны???
Пошел переписывать свой код к чертям собачьим
Rodegast
> Они несколько неинтуитивные, запутанные, и не имют аналогов в других языках…

Любой язык сколь нибудь поддерживающий ФП имеет хотя-бы аналогичные функции. А если они кажутся не интуитивными или запутанными, то значит что ты ещё до ФП не дорос.
IceIsNice
Решил я эту задачу, просто с утра свежим взглядом получается я 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
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