Форум сайта python.su
Люди!
Помогите написать 2 маленькие и простенькие задачки!!!
Циклические сдвиги, когда в первом случае список превращается в , а в другом превращается (как видно, элементы в одной задаче сдвигаются на 1 позицию вправо, в другой - влево)
Важные условия:
НЕ ИСПОЛЬЗОВАТЬ APPEND
НЕ ИСПОЛЬЗОВАТЬ DEL
НЕ ИСПОЛЬЗОВАТЬ FOR
ОБЯЗАТЕЛЬНО НАПИСАТЬ С ПОМОЩЬЮ WHILE
Офлайн
#2
a=
i=0
t=a
while i<len(a)-1:
a=a
i+=1
a=t
Результат:
Офлайн
А вот альтернативный вариант :)
a =
a = a + [a]
while False:
pass
print a
Офлайн
#1
a=
i=len(a)-1
t=a
while i>0:
a=a
i-=1
a=t
Результат:
P.S. Хочеться увидеть альтернативный вариант и этой задачи ;)
Офлайн
alafinЖелание администратора - закон :)
P.S. Хочеться увидеть альтернативный вариант и этой задачи wink
Офлайн
Ну вот, теперь думаю, препод должен ставить автоматом за решение задач в двух вариантах :)
Офлайн
slivlen while False: pass не осилил)) наверно алафина варианты больше подойдут препаду
Офлайн
def left_move(a, n):
“”“
a - список
n - на сколько сдвигать
”“”
while n:
a = a + [a]
n -= 1
return a
def right_move(a, n):
while n:
a = [a] + a
n -= 1
return a
a =
print a
print “<< 2”, left_move(a, 2)
print “>> 2”, right_move(a, 3)
> /usr/bin/python -u “/tmp/1.py”имхо так покрасивше В)
<< 2
>> 2
Офлайн
Спасибо! Всем! Не дайте студентке засохнуть!
Как превратить список в ??? Условия те же, что и в первом моем посте.
Отредактировано (Янв. 22, 2007 23:01:55)
Офлайн
В Питоне это одним методом .reverse делается:
a=
a.reverse()
print a
Можно, конечно, ещё while False: pass добавить. Но, наверное, твоему преподу что-то поизвращённее надо? Ну, можно извращаться так:
a=
la=len(a)
n=la/2-1
while n>=0:
a,a=a,a
n-=1
print a
Офлайн