Уведомления

Группа в Telegram: @pythonsu

#1 Март 16, 2015 02:13:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Понять учебный код

zainou
что подразумевается под “шагом” среза
python.org. sequence operations

The slice of s from i to j is defined as the sequence of items with index k such that i <= k < j. If i or j is greater than len(s), use len(s). If i is omitted or None, use 0. If j is omitted or None, use len(s). If i is greater than or equal to j, the slice is empty.

The slice of s from i to j with step k is defined as the sequence of items with index x = i + n*k such that 0 <= n < (j-i)/k. In other words, the indices are i, i+k, i+2*k, i+3*k and so on, stopping when j is reached (but never including j). If i or j is greater than len(s), use len(s). If i or j are omitted or None, they become “end” values (which end depends on the sign of k). Note, k cannot be zero. If k is None, it is treated like 1.



Отредактировано py.user.next (Март 16, 2015 02:14:33)

Офлайн

#2 Март 16, 2015 17:10:18

zainou
Зарегистрирован: 2014-11-13
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Понять учебный код

Нет, всё таки не понял.

s='madagaskar'
s [1:7:2]
'aaa'
Получили ‘aaa’, хотя я предполагал получить ‘agaska’. Я думал, он просто сдвинет срез на два элемента вправо, но всё не так? Потому что, вместо сдвига срез выносит значение только элементов 1, 1+2, 1+2*2 и т.д. до 7 не включая последний?
Может есть раздел математики или информатики, которые я не читал и там про это всё написано?

Отредактировано zainou (Март 16, 2015 17:10:58)

Офлайн

#3 Март 16, 2015 17:27:40

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Понять учебный код

zainou
Может есть раздел математики или информатики, которые я не читал и там про это всё написано?
Вы с бейсиком знакомы?
Ба бейсике это примерно следующие
for i = 1 to 7 step 2



Офлайн

#4 Март 16, 2015 22:59:48

TroSer
От: Харьков
Зарегистрирован: 2013-11-13
Сообщения: 65
Репутация: +  3  -
Профиль   Отправить e-mail  

Понять учебный код

Вам нужно больше поработать в консоли, попробовать разные варианты и помнить что есть два обязательных параметра (start:stop), где start – индекс начала среза включительно, stop – индекс конца среза исключительно (могут быть не указаны, тогда просто создастся копия объекта). И что есть третий дополнительный параметр step, который указывает шаг с которым будут копироваться (вырезаться) элементы объекта (шаг == 2, каждый второй элемент, шаг == -1 – в обратном порядке и т.д.)

Отредактировано TroSer (Март 16, 2015 23:02:29)

Офлайн

#5 Март 16, 2015 23:20:23

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Понять учебный код

zainou
вместо сдвига срез выносит значение только элементов 1, 1+2, 1+2*2 и т.д. до 7 не включая последний?
Там надо оперировать индексами. У первого элемента индекс – ноль, у последнего – длина - 1. Срез создаётся один раз путём выбора элементов по индексам. После создания срез не меняется.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version