#статьи
-
0
Рассказываем о методе join() и других полезных инструментах для конвертирования Python‑списков в строки.
Иллюстрация: Оля Ежак для Skillbox Media
Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.
В Python существует два основных способа сделать из списка строку: с помощью цикла и с помощью метода join(). У обоих есть нюансы, о которых мы сейчас расскажем.
Более понятный для новичка, но и более громоздкий способ перевести список в строку — воспользоваться циклом. Если вы уже знаете его и просто хотите узнать более эффективный и быстрый метод, то сразу переходите к следующему разделу. А если нет, то давайте разбираться.
Как это работает: мы создаём пустую строку, потом с помощью цикла переберём каждый элемент списка и на каждой итерации будем добавлять к строке текущий элемент списка.
lst = ['Преобразование','через','цикл'] #Создаём пустую строку string = '' #По очереди добавляем к ней каждый элемент списка for el in lst: string += el print(string) >>> Преобразованиечерезцикл
Однако такой код не будет работать, если в списке есть не только строки, но и, например, числа. Дело в том, что в Python нельзя смешивать данные разных типов.
Поэтому, перед тем как добавлять элемент в список, его нужно преобразовать в строку. Делается это с помощью функции str(). Добавим её в наш код.
#Создаём список, в котором есть как строки, так и цифры lst = ['Преобразование','через','цикл', 2] string = '' for el in lst: string += str(el) #Превращаем каждый элемент списка в строку print(string) >>> Преобразованиечерезцикл2
Если нужно установить разделитель между строками, то для него нужно прописать отдельную строчку кода внутри цикла.
lst = ['Преобразование','через','цикл', 3] string = '' for el in lst: #Добавляем к строке элемент списка string += str(el) #Добавляем к строке разделитель — в данном случае пробел string += ' ' print(string) >>> Преобразование через цикл 3
Обратите внимание: раз мы добавляем разделитель на каждой итерации, пробел будет и после цифры 3 нашего последнего элемента. Это легко проверить, если вместо пробела добавлять какой-то другой, видимый символ.
Эту проблему можно решить — ещё больше усложнив код. Например, введя условие, которое проверяет, последний это элемент в списке или нет. Однако гораздо проще и удобнее превратить список в строку, используя встроенный метод join().
Метод join(), по сути, делает всё то же самое, что и наш цикл, но лучше, удобнее и занимает всего одну строку. Вот как его применяют:
string.join(lst)
В качестве аргумента lst он получает список, элементы которого и будет объединять в строку, а string — это разделитель. Если мы не хотим его устанавливать, то в качестве string нужно указать пустую строку.
Посмотрим, как join() применяется на практике.
lst = ['Преобразование', 'через', 'метод', 'join()'] #Объединяем элементы списка с пустым разделителем print(''.join(lst)) >>> Преобразованиечерезметодjoin() #Устанавливаем пробел в качестве разделителя print(' '.join(lst)) >>> Преобразование через метод join()
Заметили особенность? Разделители ставятся только между элементами, а не после каждого элемента, как было в нашем цикле. join() — умница. Однако и тут есть ахиллесова пята: если в списке встречаются нестроковые элементы, мы получим ошибку. Чтобы этого избежать, надо опять-таки сначала превратить все нестроки в строки. Сделать это можно двумя способами.
Выражение-генератор — это конструкция, которая позволяет провести операцию над каждым элементом списка. Оно возвращает генератор, с которым метод join() обращается точно так же, как и со списками.
lst = [1, 1.2, 'строка', False] print(' '.join(str(el) for el in lst)) >>> 1 1.2 строка False
Конструкция str(el) for el in lst означает, что каждый элемент el в списке lst будет превращён в строку с помощью функции str (стандартной функции Python, которую мы уже использовали, когда работали с циклом).
Функция map() умеет делать то же самое, что и выражение-генератор, но их синтаксис отличается. В качестве первого аргумента она принимает саму операцию, в качестве второго — список, к элементам которого эта операция применяется.
lst = [1, 1.2, 'строка', False] print(' '.join(map(str, lst))) >>> 1 1.2 строка False
Конструкция map(str, lst) означает, что каждый элемент в списке lst будет превращён в строку с помощью функции str. Обратите внимание, что в качестве аргумента в map() передаётся только название функции, без скобок.
Преобразовать список в строку можно с помощью цикла, но для этого есть и более удобный инструмент — метод join().
Если содержит нестроковые элементы, то их для начала придётся превратить в строки — иначе выскочит ошибка. Для этого можно воспользоваться выражением-генератором или функцией map().
Курс с трудоустройством: «Профессия Python-разработчик»
Узнать о курсе
Скачать материал
Выберите документ из архива для просмотра:
11 класс_урок 9-10@SEP@Инструкция для активизации макросов в презентации.docx
11 класс_урок 9-10@SEP@11 класс-РУ_Информатика-№4_Целочисленная арифметика.pptm
11 класс_урок 9-10@SEP@DragAndDrop2013.pptm
Выбранный для просмотра документ 11 класс_урок 9-10@SEP@Инструкция для активизации макросов в презентации.docx
Скачать материал «11 класс_ЯП Python. Целочисленная арифметика»
Курс повышения квалификации
Курс профессиональной переподготовки
-
Сейчас обучается
53 человека
из
22 регионов -
Этот курс уже прошли
33 человека
Курс повышения квалификации
-
Этот курс уже прошли
40 человек
Курс повышения квалификации
-
Сейчас обучается
41 человек
из
14 регионов -
Этот курс уже прошли
96 человек
Смотреть ещё
5 734 курса
Выбранный для просмотра документ 11 класс_урок 9-10@SEP@11 класс-РУ_Информатика-№4_Целочисленная арифметика.pptm
Скачать материал «11 класс_ЯП Python. Целочисленная арифметика»
Описание презентации по отдельным слайдам:
-
2 слайд
ИНФОРМАТИКА
Разминка
11 -
3 слайд
ИНФОРМАТИКА
ИГРА
«Python»
11
ПРАВИЛА ИГРЫ -
4 слайд
ИНФОРМАТИКА
11
Игровое поле «Python» представляет собой своеобразную игру-бродилку. Стартовать начинаем с головы Питона, а финишировать будем в хвосте. Тело Питона поделено на части, которые пронумерованы.
ПРАВИЛА ИГРЫ: -
5 слайд
ИНФОРМАТИКА
11
Тело Питона поделено на части, которые пронумерованы. Необходимо поделиться на 2 команды. У каждой команды своя фишка (определяется жребием, как и то, кто будет ходить первым).Количество шагов на поле определяется «подбрасыванием» интерактивной игральной кости со значениями от 1 до 4.
ПРАВИЛА ИГРЫ: -
6 слайд
ИНФОРМАТИКА
11
Фишка команды передвигается по полю. Попав на поле с цифрой, нужно ответить на вопрос,если команда отвечает на поставленный вопрос, то продолжает «подбрасывать» кубик. Если отвечает неправильно или вообще не сможет дать ответа, то ход переходит другой команде. Побеждает та команда, которая первая пришла к финишу.
ПРАВИЛА ИГРЫ: -
7 слайд
ИНФОРМАТИКА
11
Игра предусматривает бонусы – можно подняться наверх по лестнице, и ловушки – если встретилась змейка, придется скатиться на указанную клетку.
ПРАВИЛА ИГРЫ:
Если встали на клетку с отгаданным вопросом или пустую клетку – команда пропускает ход, переход хода к другой команде -
8 слайд
ИНФОРМАТИКА
11
Если встретится:
– двигаемся на 1 клетку вперёд,– двигаемся на 2 клетки вперёд,
– двигаемся на 1 клетку назад,
– двигаемся на 2 клетки назад.
ПРАВИЛА ИГРЫ:
-
9 слайд
ИНФОРМАТИКА
11
40
38
36
34
33
31
30
27
25
24
22
9
8
20
19
18
15
5
4
2
1 -
10 слайд
ИНФОРМАТИКА
11
Как в Python добавить элемент x в начало списка A? Ответ запишите без пробелов.
ВОПРОС №1:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ -
11 слайд
ИНФОРМАТИКА
11
ВОПРОС №1:
ОТВЕТ:
A=[x]+A
Как в Python добавить элемент x в начало списка A? Ответ запишите без пробелов. -
12 слайд
ИНФОРМАТИКА
11
Каким должен быть список, чтобы в нём можно было применить двоичный поиск?
Выберите один из 4 вариантов ответа:
Отсортированным
Строковым
Символьным
Пустым
ВОПРОС №2:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ -
13 слайд
ИНФОРМАТИКА
11
Каким должен быть список, чтобы в нём можно было применить двоичный поиск?
Выберите один из 4 вариантов ответа:
Отсортированным
Строковым
Символьным
Пустым
ВОПРОС №2:
ОТВЕТ:
1 (ОТСОРТИРОВАННЫМ) -
14 слайд
ИНФОРМАТИКА
11
ВОПРОС №4:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Как называется изменение порядка следования элементов списка в соответствии с некоторыми правилами?
Составьте слово из букв:
РВКСИТРОАО -
15 слайд
ИНФОРМАТИКА
11
ВОПРОС №4:
ОТВЕТ:
СОРТИРОВКА
Как называется изменение порядка следования элементов списка в соответствии с некоторыми правилами?
Составьте слово из букв:
РВКСИТРОАО -
16 слайд
ИНФОРМАТИКА
11
ВОПРОС №5:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Как нужно изменить условие ветвления в четвёртой строке кода, чтобы функция начала возвращать индекс последнего вхождения максимального элемента списка? Новое условие запишите без пробелов.
Изображение: -
17 слайд
ИНФОРМАТИКА
11
ВОПРОС №5:
ОТВЕТ:
a[i]>=a[m]
Как нужно изменить условие ветвления в четвёртой строке кода, чтобы функция начала возвращать индекс последнего вхождения максимального элемента списка? Новое условие запишите без пробелов.
Изображение: -
18 слайд
ИНФОРМАТИКА
11
ВОПРОС №8:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Как с помощью стандартной функции сортировки языка Python получить список B состоящий из элементов списка А, отсортированных по возрастанию?
Выберите несколько из 4 вариантов ответа:
B = sorted (A, reverse = True)
A = sorted (B)
3) B = sorted (A, reverse = False)
4) B = sorted (A) -
19 слайд
ИНФОРМАТИКА
11
ВОПРОС №8:
ОТВЕТ:
3; 4
Как с помощью стандартной функции сортировки языка Python получить список B состоящий из элементов списка А, отсортированных по возрастанию?
Выберите несколько из 4 вариантов ответа:
B = sorted (A, reverse = True)
A = sorted (B)
3) B = sorted (A, reverse = False)
4) B = sorted (A) -
20 слайд
ИНФОРМАТИКА
11
ВОПРОС №9:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Сколько проверок выполнит алгоритм двоичного поиска, прежде чем найти элемент со значением 8 в следующем списке?
[1, 3, 6, 7, 8, 10, 15, 20]Выберите один из 4 вариантов ответа:
1) 42) 23) 54) 6 -
21 слайд
ИНФОРМАТИКА
11
ВОПРОС №9:
ОТВЕТ:
1 (4 проверки)
Сколько проверок выполнит алгоритм двоичного поиска, прежде чем найти элемент со значением 8 в следующем списке?
[1, 3, 6, 7, 8, 10, 15, 20]Выберите один из 4 вариантов ответа:
1) 42) 23) 54) 6 -
22 слайд
ИНФОРМАТИКА
11
ВОПРОС №15:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
К какому типу алгоритмов относится быстрая сортировка элементов списка?
Выберите один из 4 вариантов ответа:
К рекурсивным
К разветвляющимся
3) К циклическим
4) К линейным -
23 слайд
ИНФОРМАТИКА
11
ВОПРОС №15:
ОТВЕТ:
1 (к рекурсивным)
К какому типу алгоритмов относится быстрая сортировка элементов списка?
Выберите один из 4 вариантов ответа:
К рекурсивным
К разветвляющимся
3) К циклическим
4) К линейным -
24 слайд
ИНФОРМАТИКА
11
ВОПРОС №18:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Укажите верный порядок следования строк кода в описании функции поиска индекса первого вхождения элемента с заданным значением в списке?
Укажите порядок следования всех 5 вариантов ответа:
return -1
return a.index (x)
def search (x, a):
else:
if x in a: -
25 слайд
ИНФОРМАТИКА
11
ВОПРОС №18:
Укажите верный порядок следования строк кода в описании функции поиска индекса первого вхождения элемента с заданным значением в списке?
Укажите порядок следования всех 5 вариантов ответа:
return -1
3
1
4
2
5
return a.index (x)
def search (x, a):
else:
if x in a: -
26 слайд
ИНФОРМАТИКА
11
ВОПРОС №19:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Что будет выведено на экран при исполнении инструкций?
A = [1, 2, 3, 4, 5]
print (3 in A) -
27 слайд
ИНФОРМАТИКА
11
ВОПРОС №19:
ОТВЕТ:
True
Что будет выведено на экран при исполнении инструкций?
A = [1, 2, 3, 4, 5]
print (3 in A) -
28 слайд
ИНФОРМАТИКА
11
ВОПРОС №20:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Как в Python с помощью единственной инструкции в переменной B создать копию списка A? Ответ запишите без пробелов. -
29 слайд
ИНФОРМАТИКА
11
ВОПРОС №20:
ОТВЕТ:
B=A[0:len(A)]
Как в Python с помощью единственной инструкции в переменной B создать копию списка A? Ответ запишите без пробелов. -
30 слайд
ИНФОРМАТИКА
11
ВОПРОС №22:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Что будет выведено на экран при исполнении инструкций?
s = ‘АРАРАТ’
s.replace (‘АРА’, ‘ФА’)
print (s[0:4]) -
31 слайд
ИНФОРМАТИКА
11
ВОПРОС №22:
ОТВЕТ:
ФАРА
Что будет выведено на экран при исполнении инструкций?
s = ‘АРАРАТ’
s.replace (‘АРА’, ‘ФА’)
print (s[0:4]) -
32 слайд
ИНФОРМАТИКА
11
ВОПРОС №24:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Какое условие выполняется для элементов главной диагонали квадратной матрицы?
i, j — индексы строки и столбца матрицы.
Выберите один из 4 вариантов ответа:
1) i == j2) i <= j3) i != j4) i >= j -
33 слайд
ИНФОРМАТИКА
11
ВОПРОС №24:
ОТВЕТ:
1 (i == j)
Какое условие выполняется для элементов главной диагонали квадратной матрицы?
i, j — индексы строки и столбца матрицы.
Выберите один из 4 вариантов ответа:
1) i == j2) i <= j3) i != j4) i >= j -
34 слайд
ИНФОРМАТИКА
11
ВОПРОС №25:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Что будет выведено на экран при исполнении инструкций?
s, t = ‘Кара-Көл’, ‘Кара-Суу’
if t > s:
print (s)
else:
print (t) -
35 слайд
ИНФОРМАТИКА
11
ВОПРОС №25:
ОТВЕТ:
Кара-Көл
Что будет выведено на экран при исполнении инструкций?
s, t = ‘Кара-Көл’, ‘Кара-Суу’
if t > s:
print (s)
else:
print (t) -
36 слайд
ИНФОРМАТИКА
11
ВОПРОС №27:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Выберите несколько истинных утверждений из 4 вариантов ответа:
1) Элементы символьной строки можно изменять, обращаясь к ним по их индексам.
2) Квадратной называется матрица, в которой количество строк не равно количеству столбцов.
3) Элемент матрицы имеет два индекса.
4) Символьная строка — это неизменная величина. -
37 слайд
ИНФОРМАТИКА
11
ВОПРОС №27:
ОТВЕТ:
3; 4
Выберите несколько истинных утверждений из 4 вариантов ответа:
1) Элементы символьной строки можно изменять, обращаясь к ним по их индексам.
2) Квадратной называется матрица, в которой количество строк не равно количеству столбцов.
3) Элемент матрицы имеет два индекса.
4) Символьная строка — это неизменная величина. -
38 слайд
ИНФОРМАТИКА
11
ВОПРОС №30:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Какие значения элементов будут у матрицы A после исполнения инструкций?
A = [0] * 3
A = [A] * 3
A[0][1] = 1
Выберите один из 4 вариантов ответа:
1) [[0, 0, 0], 2) [[0, 1, 0], 3) [[0, 0, 0], 4) [[0, 1, 0],
[1, 0, 0], [0, 0, 0], [1, 1, 1], [0, 1, 0],
[0, 0, 0]] [0, 0, 0]] [0, 0, 0]] [0, 1, 0]] -
39 слайд
ИНФОРМАТИКА
11
ВОПРОС №30:
ОТВЕТ:
4
Какие значения элементов будут у матрицы A после исполнения инструкций?
A = [0] * 3
A = [A] * 3
A[0][1] = 1
Выберите один из 4 вариантов ответа:
1) [[0, 0, 0], 2) [[0, 1, 0], 3) [[0, 0, 0], 4) [[0, 1, 0],
[1, 0, 0], [0, 0, 0], [1, 1, 1], [0, 1, 0],
[0, 0, 0]] [0, 0, 0]] [0, 0, 0]] [0, 1, 0]] -
40 слайд
ИНФОРМАТИКА
11
ВОПРОС №31:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Как называется прямоугольная таблица из элементов одного типа?
Выберите один из 4 вариантов ответа:
Массив
Матрица
Символьная строка
Список -
41 слайд
ИНФОРМАТИКА
11
ВОПРОС №31:
ОТВЕТ:
2
Как называется прямоугольная таблица из элементов одного типа?
Выберите один из 4 вариантов ответа:
Массив
Матрица
Символьная строка
Список -
42 слайд
ИНФОРМАТИКА
11
ВОПРОС №33:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Укажите верный порядок следования строк кода в описании функции вычисления суммы элементов матрицы? Укажите порядок следования всех 5 вариантов ответа:
s = s + sum (t)
s = 0
def sumMatrix (a):
return s
for t in a: -
43 слайд
ИНФОРМАТИКА
11
ВОПРОС №33:
Укажите верный порядок следования строк кода в описании функции вычисления суммы элементов матрицы? Укажите порядок следования всех 5 вариантов ответа:
s = s + sum (t)
2
1
5
3
4
s = 0
def sumMatrix (a):
return s
for t in a: -
44 слайд
ИНФОРМАТИКА
11
ВОПРОС №34:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Сопоставьте методы символьных строк, с результатом, который они вернут при s = ‘Самолёт’?
Укажите соответствие для всех 5 вариантов ответа:
s.upper ()
s.rfind (‘Лёт’)
s.split (‘о’)
s.isdgit ()
s.find (‘лёт’)
‘САМОЛЁТ’
-1
4
‘Сам’, ‘лёт’
False -
45 слайд
ИНФОРМАТИКА
11
ВОПРОС №34:
Сопоставьте методы символьных строк, с результатом, который они вернут при s = ‘Самолёт’?
Укажите соответствие для всех 5 вариантов ответа:
s.upper ()
‘САМОЛЁТ’
-1
4
‘Сам’, ‘лёт’
False
s.rfind (‘Лёт’)
s.split (‘о’)
s.isdgit ()
s.find (‘лёт’) -
46 слайд
ИНФОРМАТИКА
11
ВОПРОС №36:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
В какой из инструкций допущена ошибка, если s = ‘мама мыла раму’?
Выберите один из 4 вариантов ответа:
s = s[0:4]
t = s[3]
s[3] = ‘ ‘
t = s[0:4] -
47 слайд
ИНФОРМАТИКА
11
ВОПРОС №36:
ОТВЕТ:
3
В какой из инструкций допущена ошибка, если s = ‘мама мыла раму’?
Выберите один из 4 вариантов ответа:
s = s[0:4]
t = s[3]
s[3] = ‘ ‘
t = s[0:4] -
48 слайд
ИНФОРМАТИКА
11
ВОПРОС №38:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
Что будет выведено на экран при исполнении инструкций?s = ‘-5’
print (s.isdigit ()) -
49 слайд
ИНФОРМАТИКА
11
ВОПРОС №38:
ОТВЕТ:
False
Что будет выведено на экран при исполнении инструкций?s = ‘-5’
print (s.isdigit ()) -
50 слайд
ИНФОРМАТИКА
11
ЗАДАНИЕ №40:
10
9
8
7
6
5
4
3
2
1
0
Узнать ответ
1
2
3
4
5
6
7
8
9
10
Объявление матрицы
Включение генератора случайных чисел
Начало цикла работы со строками
Начало цикла работы с элементами одной строки матрицы
Присваивание элементу массива значения функции выбора случайного числа
Добавление оператора вывода
Окончание цикла работы с элементами одной строки матрицы
Переход на новую строку
Окончание цикла работы со строками матрицы
Окончание программы
Расположите по порядку действия, которые нужно выполнить при создании программы ввода матрицы с помощью датчика случайных чисел -
51 слайд
ИНФОРМАТИКА
11
ЗАДАНИЕ №40:
1
2
3
4
5
6
7
8
9
10
1.Объявление матрицы
2.Включение генератора случайных чисел
3.Начало цикла работы со строками
4.Начало цикла работы с элементами одной строки матрицы
5.Присваивание элементу массива значения функции выбора случайного числа
6.Добавление оператора вывода
7.Окончание цикла работы с элементами одной строки матрицы
8.Переход на новую строку
9.Окончание цикла работы со строками матрицы
10.Окончание программы -
52 слайд
Урок №4
1.4.Тема:
«Целочисленная арифметика»
Программирование
ИНФОРМАТИКА 11 КЛАСС -
53 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Числа: целые, вещественные, комплексные. Работа с числами и операции над ними.
А
В
А В𝑎 2
2𝑥+3
6𝑦−7𝑥
2𝑎−5𝑑 3𝑏+4𝑐
(𝑎+𝑏)(𝑎−𝑏) -
54 слайд
Целочисленный тип данных (int)
205
112
782
345
981
400
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
55 слайд
Операции обработки числовых данных
+
–
/
*
**
Тип результата зависит от типа операндов
a
b
Тип результата: float
a: int
b: float
a, b: int
a + b: int
a + b: float
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
56 слайд
Функция модуля числа
Запись:
abs
Модуль числа — это расстояние на числовой оси от точки начала отсчёта
до точки, соответствующей
этому числу.
|a|
При a ≥ 0, |a| = a,
при a < 0, |a| = –a.
(<аргумент>)
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
57 слайд
Задача
Даны целочисленные ненулевые координаты точки T на плоскости. Из начала отсчёта в точку Т провели отрезок, который является диагональю прямоугольника. Вычислить площадь и периметр этого прямоугольника.
y
x
T1
(x1; y1)
a = x1
b = y1
T2
(x2; y2)
a = –x2
b = –y2
P = (a + b) × 2
S = a × b
a = |x|, b = |y|
y
x
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
58 слайд
Задача
print (‘Введите координаты точки Т.’)
x = int (input ())
y = int (input ())
a, b = abs (x), abs (y)
s = a * b
p = (a + b) * 2
print (‘Площадь заданного прямоугольника равна’, s, ‘, а периметр -‘, p)
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
59 слайд
Задача
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
60 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Числа: целые, вещественные, комплексные. Работа с числами и операции над ними. -
61 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Числа: целые, вещественные, комплексные. Работа с числами и операции над ними.
>>> 20 % 3
2
>>> 3 ** 4
81
>>> (3, 4)
81
>>> (3, 4, 27)
0
>>> 255 + 34
289
>>>
5 * 2
10
>>> 20 / 3
6.666666666666667
>>> 20 // 3
6
>>> 3 ** 150 369988485035126972924700782451696644186473100389722973815184405301748249 -
62 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Битовые операции -
63 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Дополнительные методы
int.bit_length() — количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.
>>> n = -37
>>> bin(n)
‘-0b100101’
>>> n.bit_length()
6
Например: -
64 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Дополнительные методы
int.to_bytes(length, byteorder, *, signed=False) — возвращает строку байтов, представляющих это число.
>>> (1024).to_bytes(2, byteorder=’big’)
b’\x04\x00′
>>> (1024).to_bytes(10, byteorder=’big’)
b’\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00′
>>> (-1024).to_bytes(10, byteorder=’big’, signed=True)
b’\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00′
>>> x = 1000 >>> x.to_bytes((x.bit_length() //+ 1, byteorder=’little’)
b’\xe8\x03′
Например: -
65 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Дополнительные методы
classmethod int.from_bytes(bytes, byteorder, *, signed=False) — возвращает число из данной строки байтов.
>>> int.from_bytes(b’\x00\x10′, byteorder=’big’)
16
>>> int.from_bytes(b’\x00\x10′, byteorder=’little’)
4096
>>> int.from_bytes(b’\xfc\x00′, byteorder=’big’, signed=True)
-1024
>>> int.from_bytes(b’\xfc\x00′, byteorder=’big’, signed=False)
64512
>>> int.from_bytes([255, 0, 0], byteorder=’big’)
16711680
Например: -
66 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Системы счисления
int([object], [основание системы счисления]) — преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
bin(x) — преобразование целого числа в двоичную строку.
hex(х) — преобразование целого числа в шестнадцатеричную строку.
oct(х) — преобразование целого числа в восьмеричную строку.
1910 = 100112
Функции для перевода из одной с.с. в другую: -
67 слайд
Вещественные числа (float)
Floating point
– плавающая точка.
Мантисса
Показатель сдвига
8 байт
До 15 цифр
Важно: так как точность вещественных чисел при программировании ограничена, то в процессе проведения многочисленных вычислений с их использованием может накапливаться вычислительная ошибка.
Это стоит учитывать при написании программ.
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
68 слайд
Операции обработки числовых данных
+
–
/
*
**
Тип результата зависит от типа операндов
a
b
Тип результата: float
a: int
b: float
a, b: int
a + b: int
a + b: float
Функция модуля – abs (х); возвращает значение того же типа, что и аргумент.
|a|
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
69 слайд
Дополнительные методы
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
float.as_integer_ratio() — пара целых чисел, чьё отношение равно этому числу.float.is_integer() — является ли значение целым числом.
float.hex() — переводит float в hex (шестнадцатеричную систему счисления).
classmethod float.fromhex(s) — float из шестнадцатеричной строки.
-
70 слайд
Функции приведения к целым значениям
Математическое округлениеВыделение целой части
round (x)
Целочисленный результат
Целочисленный результат
int (x)
round (2.4) = 2
round (3.8) = 4
int (2.4) = 2
int (3.8) = 3
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
71 слайд
Математические функции
Math
Математический
модуль
Синус угла
sin x
math.sin (x)
Косинус угла
cos x
math.cos (x)
α = t°
t
180°
× π рад.
=
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
72 слайд
Математические функции
Math
Математический
модуль
Синус угла
sin x
math.sin (x)
Косинус угла
cos x
math.cos (x)
Натуральный логарифм
ln x
math.log (x)
Квадратный корень
math.sqrt (x)
Экспонента
ex
math.exp (x)x
Описанные функции принимают числовые аргументы и возвращают вещественные значения.
Число π
π
math.pi
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
73 слайд
Математические функции
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
74 слайд
Вызов функций из модуля
Подключение модуля:import math
Точечный вызов:math.sqrt (x)
Загрузка всех функций модуля:from math import *
Вызов загруженных функций:sqrt (x)
Выборочная загрузка функций модуля:from math import
sin, cos, sqrt
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11 -
75 слайд
Случайные вещественные числа
Функция random.random ( )
возвращает случайное вещественное
число на промежутке [0; 1).
Случайное вещественное число на промежутке [a; b):random.random ()
* (b – a)
+ a
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
import random -
76 слайд
Комплексные числа
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Для работы с комплексными числами используется также модуль cmath.
>>> x = complex(1, 2)
>>> print(x)
(1+2j)
>>> y = complex(3, 4)
>>> print(y)
(3+4j)
>>> z = x + y
>>> print(x)
(1+2j)
>>> print(z)
(4+6j)
>>> z = x * y
>>> print(z)
(-5+10j)
>>> z = x / y
>>> print(z)
(0.44+0.08j) -
77 слайд
Комплексные числа
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
>>> print(x.conjugate()) # Сопряжённое число
(1-2j)
>>> print (x.imag) # Мнимая часть
2.0
>>> print(x.real) # Действительная часть
1.0
>>> print(x > y) # Комплексные числа нельзя сравнить
Traceback (most recent call last): File «», line 1, in TypeError: unorderable types: complex() > complex()>>> print(x == y) # Но можно проверить на равенство
False
>>> abs (3 + 4j) # Модуль комплексного числа
5.0
>>> pow (3 + 4j, 2) # Возведение в степень
(-7+24j) -
78 слайд
Целочисленные алгоритмы
1
2
Решето Эратосфена
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
3
«Длинные» числа
11
4
Вычисление факториала. Квадратный корень -
79 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Целочисленные алгоритмы
Исходные данные и необходимые результаты – целые числа.
Процессор, как правило, выполняет операции с целыми числами значительно быстрее, чем с вещественными;
Целые числа всегда точно представляются в памяти компьютера, и вычисления с ними также выполняются без ошибок (если, конечно, не происходит переполнение разрядной сетки).
1
2 -
80 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Решето Эратосфена
Эратосфен Киренский
(Eratosthenes, Ερατοσθδνη)
(ок. 275-194 до н.э.)
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
2
3 -
81 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Таблица простых чисел до 1000 -
82 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Решето Эратосфена
Решето Эратосфена – это алгоритм нахождения простых чисел до заданного натурального числа путем постепенного отсеивания составных чисел.
Образно говоря, через решето Эратосфена в процессе его тряски проскакивают составные числа, а простые остаются в решете. -
83 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Решето Эратосфена
Числа являются простыми, если делятся только на единицу и самих себя.
Первое простое число — это 2, второе простое число — это 3.
2
3
4
5
6
7
8
9
10
12
13
14
15
16
…
11
2
3
5
7
11
13
17
19
… -
84 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Решето Эратосфена
Данная программа должна вывести все простые числа в заданном диапазоне (от 0 до n) при помощи алгоритма «Решето Эратосфена».
Описание задачи:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
2
3 -
85 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Решето Эратосфена
Принимаем значение определяющее верхнюю границу диапазона и записываем его в переменную n.
Инициализируем переменную sieve («решето») множеством чисел от 2 до n.
Используем цикл while, который прекратит свою работу, когда множество sieve станет пустым.
Примем во внимание тот факт, что минимальное число в этом множестве (на первой итерации это будет 2) всегда простое.
Выводим это число на экран.
Далее удаляем это число вместе со всеми числами, кратными ему (в заданном диапазоне).
Продолжаем это делать, пока множество sieve не станет пустым.
Конец
Алгоритм «Решето Эратосфена»: -
86 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Решето Эратосфена
Реализация на Python:
n = int(input(«Введите верхнюю границу диапазона: «))
sieve = set(range(2, n+1))
while sieve:
prime = min(sieve)
print(prime, end = «\t»)
sieve -= set(range(prime, n+1, prime)) -
87 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Решето Эратосфена
Результаты работы программы:
Пример 1: Введите верхнюю границу диапазона: 102 3 5 7
Пример 2: Введите верхнюю границу диапазона: 15
2 3 5 7 11 13
-
88 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
«Длинные» числа
Ключи для шифрования: 256 битов.
Целочисленные типы данных обычно 64 битов.
Как хранить?
?
Длинное число – это число, которое не помещается в переменную одного из стандартных типов данных языка программирования.
«Длинная арифметика» – алгоритмы для работы с длинными числами.
В Python длинная арифметика встроенная!
! -
89 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
«Длинные» числа
A = 12345678
Что плохо?
?
неудобно вычислять (с младшего разряда!)
неэкономное расходование памяти (одна цифра в ячейке)
Обратный порядок элементов: -
90 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
«Длинные» числа
Упаковка элементов:
12345678 = 12·10002 + 345·10001 + 678·10000
система счисления с основанием 1000!
На что похоже?
?
от –231 = – 2 147 483 648 до 231 – 1 = 2 147 483 647.
Если 4 байтовая ячейка:
Какие основания можно использовать?
?
должны помещаться все промежуточные результаты!
A = 12345678 -
91 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Вычисление факториала
Задача 1. Вычислить точно значение факториала
100! = 1·2·3·…·99·100
Как оценить количество цифр?
?
1·2·3·…·99·100 < 100100
201 цифра
6 цифр в ячейке 34 ячейки
Основной алгоритм:
{A} = 1
for k in range(2,101):
{A} *= k
длинное число
основание 1000000
A = [1]
k ≤100 -
92 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Вычисление факториала
основание d = 1 000 000
[A] = 12345678901734567
734 567·3 = 2 203 701
*3
остаётся в A[0]
r = перенос в A[1]
Как найти перенос?
?
s = A[0]*k
A[0] = s % d
r = s // d
Что изменится для A[1]?
?
s = A[1]*k + r -
93 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Вычисление факториала
r = 0
for i in range(len(A)):
s = A[i]*k + r
A[i] = s % d
r = s // d
if r > 0:
A.append ( r )
Умножение «длинного» числа на k:
Вычисление 100!:
for k in range(2,101):
{A} *= k
все разряды
число удлиняется -
94 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Вычисление факториала
Какое число?
?
A = 1000002000003
вывести старший ненулевой разрядвывести все следующие разряды, добавляя лидирующие нули до 6 цифр
for i in range(h-1,-1,-1):
print ( «{:06d}».format(A[i]), end = «» )
дополнить нулями
в 6 позициях
h = len ( A )- 1
print ( A[h], end = «» )
import math
print ( math.factorial(100) ) -
95 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Квадратный корень
Задача. Извлечь квадратный корень из «длинного» целого числа; если это не целое число, найти корень с округлением «вниз» (к меньшему значению).
Метод Герона:
Начальное приближение – любое > 0!
!
(1) -
96 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Квадратный корень
Метод Герона в целых числах:
x = (x + a // x)// 2
x = (x*x + a) // (2*x)
или так:
только целые числа!
Когда остановиться?
?
(1)
(2)
Если следующее приближение больше предыдущего, то стоп!
!
это ответ! -
97 слайд
ПРОГРАММИРОВАНИЕ.
1.4. «Целочисленная арифметика»
11
Квадратный корень
Метод Герона в целых числах:
def isqrt(a):
x = a # начальное приближение
while True:
x1 = (x*x + a)//(2*x)
if x1 >= x:
return x
x = x1
следующее приближение
вернуть результат -
98 слайд
ДО НОВЫХ ВСТРЕЧ!
Программирование
ИНФОРМАТИКА 11 КЛАСС -
99 слайд
Клепачёва Е.А.,
учитель информатики УК АФМШЛ №61,
Отличник образования КР,
Председатель городского методического совета учителей информатики г.Бишкек
Выбранный для просмотра документ 11 класс_урок 9-10@SEP@DragAndDrop2013.pptm
Скачать материал «11 класс_ЯП Python. Целочисленная арифметика»
Описание презентации по отдельным слайдам:
Рабочие листы
к вашим урокам
Скачать
Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:
7 287 977 материалов в базе
- Выберите категорию:
- Выберите учебник и тему
- Выберите класс:
-
Тип материала:
-
Все материалы
-
Статьи
-
Научные работы
-
Видеоуроки
-
Презентации
-
Конспекты
-
Тесты
-
Рабочие программы
-
Другие методич. материалы
-
Найти материалы
Материал подходит для УМК
-
«Информатика (базовый и углублённый уровни) (в 2 частях)», Поляков К.Ю., Еремин Е.А.
Тема
§ 38. Целочисленные алгоритмы
Больше материалов по этой теме
Другие материалы
- 18.10.2021
- 624
- 12
Рейтинг:
4 из 5
- 18.10.2021
- 10738
- 141
Базы данных в электронных таблицах
- Учебник: «Информатика (изд. «БИНОМ. Лаборатория знаний»)», Угринович Н.Д.
- Тема: 5.1. Базы данных в электронных таблицах
- 18.10.2021
- 811
- 9
Создание и форматирование списков
- Учебник: «Информатика (изд. «БИНОМ. Лаборатория знаний»)», Угринович Н.Д.
- Тема: Практическая работа 2.4. Создание и форматирование списков
- 18.10.2021
- 1107
- 19
Вам будут интересны эти курсы:
-
Курс повышения квалификации «Информационные технологии в деятельности учителя физики»
-
Курс повышения квалификации «Использование компьютерных технологий в процессе обучения в условиях реализации ФГОС»
-
Курс повышения квалификации «Организация работы по формированию медиаграмотности и повышению уровня информационных компетенций всех участников образовательного процесса»
-
Курс повышения квалификации «Применение интерактивных образовательных платформ на примере платформы Moodle»
-
Курс повышения квалификации «Сетевые и дистанционные (электронные) формы обучения в условиях реализации ФГОС по ТОП-50»
-
Курс повышения квалификации «Специфика преподавания дисциплины «Информационные технологии» в условиях реализации ФГОС СПО по ТОП-50»
-
Курс повышения квалификации «Специфика преподавания информатики в начальных классах с учетом ФГОС НОО»
-
Курс профессиональной переподготовки «Управление в сфере информационных технологий в образовательной организации»
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров.
3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
Пройдите тест, узнайте какой профессии подходите
Одна из распространенных задач при работе с языком программирования Python — это конкатенация, или объединение, элементов списка в одну строку. Допустим,
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Одна из распространенных задач при работе с языком программирования Python — это конкатенация, или объединение, элементов списка в одну строку. Допустим, есть список строк, который выглядит следующим образом:
words = ['Привет', 'мир', 'Python']
И требуется преобразовать его в одну строку, где каждое слово разделено дефисом:
"Привет-мир-Python"
Решение
Python предлагает несколько способов для решения этой задачи. Один из простых и эффективных способов — использование метода join().
Использование метода join()
В Python метод join() используется для объединения элементов списка в строку. Этот метод принимает список в качестве аргумента и возвращает строку, состоящую из элементов списка, разделенных определенным символом.
Вот простой пример использования метода join() для объединения элементов списка в строку с разделителем в виде дефиса:
words = ['Привет', 'мир', 'Python'] result = '-'.join(words) print(result) # Вывод: "Привет-мир-Python"
В этом примере метод join() вызывается на строке, содержащей дефис (‘-‘), и принимает в качестве аргумента список words. Метод join() объединяет элементы списка words, вставляя между ними дефис, и возвращает получившуюся строку.
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Таким образом, можно легко и быстро преобразовать список строк в одну строку, используя метод join(). Это делает Python отличным инструментом для работы со строками и списками.
Public user contributions licensed under
cc-wiki license with attribution required

+ 1, byteorder=’little’)