Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2007 20:27:15

Kengyry
От:
Зарегистрирован: 2007-01-14
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

Люди!
Помогите написать 2 маленькие и простенькие задачки!!!

Циклические сдвиги, когда в первом случае список превращается в , а в другом превращается (как видно, элементы в одной задаче сдвигаются на 1 позицию вправо, в другой - влево)

Важные условия:

НЕ ИСПОЛЬЗОВАТЬ APPEND
НЕ ИСПОЛЬЗОВАТЬ DEL
НЕ ИСПОЛЬЗОВАТЬ FOR
ОБЯЗАТЕЛЬНО НАПИСАТЬ С ПОМОЩЬЮ WHILE



Офлайн

#2 Янв. 21, 2007 21:09:49

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

#2

a=
i=0
t=a
while i<len(a)-1:
a=a
i+=1
a=t

Результат:



Офлайн

#3 Янв. 21, 2007 21:19:06

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

А вот альтернативный вариант :)

a =
a = a + [a]
while False:
pass
print a



Офлайн

#4 Янв. 21, 2007 21:24:02

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

#1

a=
i=len(a)-1
t=a
while i>0:
a=a
i-=1
a=t

Результат:

P.S. Хочеться увидеть альтернативный вариант и этой задачи ;)



Офлайн

#5 Янв. 21, 2007 21:33:40

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

alafin
P.S. Хочеться увидеть альтернативный вариант и этой задачи wink
Желание администратора - закон :)

a =
a = [a] + a
while False:
pass
print a



Офлайн

#6 Янв. 21, 2007 21:35:44

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

Ну вот, теперь думаю, препод должен ставить автоматом за решение задач в двух вариантах :)



Офлайн

#7 Янв. 21, 2007 22:29:27

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

slivlen while False: pass не осилил)) наверно алафина варианты больше подойдут препаду

Офлайн

#8 Янв. 21, 2007 22:46:47

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!



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
имхо так покрасивше В)
сдвигается по 1 элементу за цикл

Офлайн

#9 Янв. 22, 2007 23:01:22

Kengyry
От:
Зарегистрирован: 2007-01-14
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

Спасибо! Всем! Не дайте студентке засохнуть!
Как превратить список в ??? Условия те же, что и в первом моем посте.



Отредактировано (Янв. 22, 2007 23:01:55)

Офлайн

#10 Янв. 23, 2007 05:07:07

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Помогите написать 2 задачи!!! Умоляю!!!

В Питоне это одним методом .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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version