Введение в последовательности; введение в строки
Хранимые последовательности
- (строки, кортежи, списки)
- индексирование, в т. ч. отрицательное
общий вид: выражение[индекс], где индекс начинается с 0
- если индекс отрицателен, элементы отсчитываются от конца последовательности
a[-1] — последний элемент, a[-2] — предпоследний и т. п.
- операции поэлементного сравнения
- лексикографическое сравнение
операция is на примере списков
операции + и *
- секционирование
обычное: выражение[начальный_индекс:конечный_индекс]
с шагом: выражение[начальный_индекс:конечный_индекс:шаг], в т. ч. с отрицательным шагом
умолчания: выражение[начальный_индекс:], выражение[:конечный_индекс], выражение[:] и всё то же самое с шагом ; если шаг отрицательный, умолчания для начала и конца меняются
вывести начальный, средний и конечный элемент введённой строки
вывести серединную секцию введённой строки (если количество элементов нечётное — из одного элемента,а если чётное — из двух)
получить элементы, стоящие на 1,4,7, и т. д. местах (NB off by 1)
имеются в виду не первый/четвёртый, а [1]/[4]/...
a[1::3]
сначала элементы, стоящие на нечётных местах, затем — на чётных, задом наперёд
- индексирование, в т. ч. отрицательное
- цикл прохода по последовательности for
break, continue, else
поиск 0
выбор максимума
Вычисляемые последовательности
(range(), enumerate())
типичный for
переписать на for факториал:
ввести последовательность чисел, вывести второй максимум — элемент, больше которого в последовательности только одно значение
например, для 1,1,2,2,7,7,3,3,5,5 второй максимум — это 5
Циклические конструкторы
- Конструктор списка
- Конструктор генератора, работа генератора, цикл for и генераторы
- Как работает множественное связывание
- распаковка последовательностей при связывании
- в цикле for (последовательность последовательностей)
a,b,*c,d = "Qwertyuiop"
Кратко о строках
- один символ — такая же целая строка, в отличие от, скажем, Pascal/C
- +, *
"".format()
Q: А есть ли в Python разница между " и '?
- A: Разницы нет никакой, кроме стилистической: хорошим тоном считается использовать для docstring двойные кавычки.
см. PEP 257 на эту тему
Вывести все стороны и площади треугольников, стороны которых — однозначные положительные целые числа (не надо использовать конструктор, это жесть!)
использовать формулу Герона
не забыть, что 1 2 3, 1 3 2 и прочие перестановки — один и тот же треугольник, выводить один раз!
вывести таблицу умножения от 1 до 12 (сначала без "".format(), потом (если успеете) с ним):
1*1 = 1 2*1 = 2 3*1 = 3 1*2 = 2 2*2 = 4 3*2 = 6 ... 1*12 = 12 2*12 = 24 3*12 = 36 4*1 = 4 5*1 = 5 6*1 = 6 4*2 = 8 5*2 = 10 6*2 = 12 ... 4*12 = 48 5*12 = 60 6*12 = 72 7*1 = 7 8*1 = 8 9*1 = 9 7*2 = 14 8*2 = 16 9*2 = 18 ...
Ввести строку, вывести, сколько в ней гласных (подсказка: c in "aeoiu" ), методами не пользоваться
Ввести список запрещённых слов в формате "слово1","слово2",..., затем вводить строки до тех пор пока последняя не окажется пустой (это так же, как ввод до 0). Вывести, сколько строк содержали запрещённые слова