Найти - Пользователи
Полная версия: Цикл с постусловием и множественный выбор
Начало » Python для новичков » Цикл с постусловием и множественный выбор
1
pavelr
Доброго времени суток!
Уважаемые форумчане, подскажите,пожалуйста,как в Python можно реализовать цикл с постусловием(аналог паскалевского repeat-until) и множественный выбор(аналог case-switch)?
И еще:вот,например,сортировка слиянием 2-х упорядоченных по возрастанию массивов-в Python реализуется императивными средствами или более эффективно с использованием map,lambda и т.д.
Заранее бланодарен!
doza_and
Если коротко - таких конструкций нет.
while 1:
some calc
if some:break

if i==1:
code 1
elif:
code 2
....
можно и так:
def fsw(x,ca):
sw={
1:lambda :x*2,
2:lambda :x*15
}
return sw[ca]()
Сортировку лучше всего осуществлять стандартными библиотечными средствами
apologize828
цикл с постусловием: Зачем цикл организовывать вообще, если заведомо предполагается лишь единичное исполнение цикла?
switch/case:
http://www.python.org/dev/peps/pep-0275/
http://www.python.org/dev/peps/pep-3103/
сортировка: все уже давно написано(как посоветовал doza_and сортировку лучше всего осуществлять стандартными библиотечными средствами), зачем изобретать велосипед?
pared
Сколько себя помню ненавидел Питон. когда в универе изучали, потом на работе пригодился… и сейчас тоже, но приходится изучать))
o7412369815963
pared
Сколько себя помню ненавидел Питон. когда в универе изучали, потом на работе пригодился… и сейчас тоже, но приходится изучать))
Мне с первого раза тоже он не понравился (наверно из за отступов вместо привычных мне “{ }” ), а сейчас считаю его лучшим языком…
asphix
можно ещё предусмотреть значение по-умолчанию и немного оптимизировать вызов :

def fsw(x,ca):
    return{
        1:lambda :x*2,
        2:lambda :x*15
    }.get(ca, lambda: "error")() 
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