pavelr
Сен. 9, 2011 19:21:02
Доброго времени суток!
Уважаемые форумчане, подскажите,пожалуйста,как в Python можно реализовать цикл с постусловием(аналог паскалевского repeat-until) и множественный выбор(аналог case-switch)?
И еще:вот,например,сортировка слиянием 2-х упорядоченных по возрастанию массивов-в Python реализуется императивными средствами или более эффективно с использованием map,lambda и т.д.
Заранее бланодарен!
doza_and
Сен. 9, 2011 20:58:55
Если коротко - таких конструкций нет.
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
Сен. 9, 2011 21:10:58
цикл с постусловием: Зачем цикл организовывать вообще, если заведомо предполагается лишь единичное исполнение цикла?
switch/case:
http://www.python.org/dev/peps/pep-0275/http://www.python.org/dev/peps/pep-3103/сортировка: все уже давно написано(как посоветовал
doza_and сортировку лучше всего осуществлять стандартными библиотечными средствами), зачем изобретать велосипед?
pared
Сен. 9, 2011 21:53:37
Сколько себя помню ненавидел Питон. когда в универе изучали, потом на работе пригодился… и сейчас тоже, но приходится изучать))
o7412369815963
Сен. 10, 2011 08:14:16
pared
Сколько себя помню ненавидел Питон. когда в универе изучали, потом на работе пригодился… и сейчас тоже, но приходится изучать))
Мне с первого раза тоже он не понравился (наверно из за отступов вместо привычных мне “{ }” ), а сейчас считаю его лучшим языком…
asphix
Авг. 16, 2012 15:42:33
можно ещё предусмотреть значение по-умолчанию и немного оптимизировать вызов

:
def fsw(x,ca):
return{
1:lambda :x*2,
2:lambda :x*15
}.get(ca, lambda: "error")()