МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Python. Списочные выражения»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Лаборатория робототехники»
Возраст детей: 10-17 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2023 г.
В ходе изучения программирования на основе языка Python большую роль играет разработка проектов. Они позволяют отработать как навыки программирования, вспомнить работу различных функций, команд, развить навыки построения алгоритмов.
Целью данной разработки является повышение интереса учащихся к техническому творчеству посредством работы над проектом на языке Python.
Данная методическая разработка используется как обучающий пример для работы по дополнительной общеобразовательной общеразвивающей программе технической направленности «Лаборатория робототехники». С их помощью учащиеся смогут применить теоретические знания на практике, построив сложные алгоритмы для решения различных задач.
Для удобного создания и заполнения списков из неповторяющихся элементов в языке Python существует инструмент, называемый списочными выражениями. Например, нам нужно заполнить список числами от 0 до 9:
numbers = [i for i in range(10)]
Создать список, заполненный символами строки:
chars = [c for c in 'abcdefg']
print(chars)
Задача 1. Первая буква имени
В программе размещен список имен:
keywords = ['Миша', 'Вася', 'Петя', 'Алексей', 'Юра', 'Вика', 'Кирилл', 'Александр', 'Кира', 'Юля', 'Виктор']
Используя списочные выражения удалите первые буквы имен в списке и выведите их в консоль.
Входные данные:
Выходные данные:
['иша', 'ася', 'етя', 'лексей', 'ра', 'ика', 'ирилл', 'лександр', 'ира', 'ля', 'и']
Листинг программы:
keywords = ['Миша', 'Вася', 'Петя', 'Алексей', 'Юра', 'Вика', 'Кирилл', 'Александр', 'Кира', 'Юля', 'Виктор']
new_keywords = [keywords[i][1:] for i in range(len(keywords))]
print(new_keywords)
Задача 2. Палиндромы
Найдите палиндромы в численном диапазоне от 100 до 1000.
Входные данные:
Выходные данные:
101 111 121 131 141 151 161 171 181 191 202 212 222 232 242 252 262 272 282 292 303 313 323 333 343 353 363 373 383 393 404 414 424 434 444 454 464 474 484 494 505 515 525 535 545 555 565 575 585 595 606 616 626 636 646 656 666 676 686 696 707 717 727 737 747 757 767 777 787 797 808 818 828 838 848 858 868 878 888 898 909 919 929 939 949 959 969 979 989 999
Листинг программы:
palindromes = [i for i in range(100,1000) if str(i) == str(i)[::-1]]
print(palindromes)
Задача 3. Предлоги
На вход программе дается число n. Напишите квадраты чисел от 1 до n, используя списочные выражения, каждый на отдельной строке.
Входные данные:
10
Выходные данные:
1
4
9
16
25
36
49
64
81
100
Листинг программы:
c = int(input())
r = [i ** 2 for i in range(1,c+1)]
for i in range(c):
print(r[i])
Задача 4. Цифры
На вход программе подается строка текста. Напишите программу, использующую списочное выражение, которая выводит все цифровые символы данной строки.
Входные данные:
87fhvnmdvcvx7821
Выходные данные:
877821
Листинг программы:
k = [i for i in input() if i.isdigit() == True]
print(*k, sep='')
Задача 5. Переворот
На вход программе подается строка текста, содержащая целые числа. Напишите программу, использующую списочное выражение, которая выведет кубы нечетных чисел, которые не оканчиваются на цифру 5.
Входные данные:
5 15 6 3 9 21
Выходные данные:
9 81 441
Листинг программы:
k = [int(i) ** 2 for i in input().split() if int(i) % 2 != 0 and int(i) ** 3 % 10 != 5]
print(*k)