День 12

Материалы

Запись трансляции 01.09.2022 Пишем телефонную книгу. Поиск элементов в списке

phone_book.py Простейшая телефонная книга
find_in_list.py Пример функции, которая ищет элемент в словаре и возвращает его номер (индекс)

Домашнее задание

  1. Допишите программу "телефонная книга". Реализуйте удаление контакта.

  2. Напишите функцию, которая ищет все вхождния элемента в списке. В качестве аргументов функция должна принимать список и тот элемент, который надо искать. Функция должна возвращать список из индексов. Каждый индекс обозначает позицию в списке, где встречается искомый элемент. Если элемент не встречается в списке, то функция должна вернуть пустой список. Напишите программу, которая проверяет эту функцию.

    
    Пример:
    Список: 2,3,5,6,3,1,2,4,5,2,4,6,5
    1 - [5]
    2 - [0,6,9]
    9 - []
    
    		
  3. Что будет, если попытаться добавить контакт с именем, которое уже существует? Выведите предупреждение для пользователя в этом случае.

  4. Добавьте возможность поиска имени по номеру телефона. Не беспокойтесь о быстродействии поиска на этом этапе.

  5. Подумайте, как можно реализовать поиск имени по номеру телефона так же быстро, как и поиск телефона по имени. Реализуйте это улучшение в телефонной книге

  6. Хочется сохранять в контактах не только телефон, но и электронную почту. Попробуйте реализовать эту функцию в программе. При добавлении контакта, программа должна запрашивать не только телефон, но и email. Вся информация о контакте должна распечатываться при поиске и выводе всего списка контактов.

  7. Задача посложнее. Напишите функцию, которая определяет страну по номеру телефона. Не обязательно добавлять все страны, функция должна распознавать по крайне мере следующие коды территорий: +1 - Северная Америка, +353 - Ирландия, +380 - Украина, +33 - Франция, +44 - Великобритания. +39 - Италия. На Википедии есть подробное описание кодов различных стран и территорий.

    
    Пример:
    Телефон: +1123123125
    Cеверная Америка
    Телефон: +3801119988
    Украина
    Телефон: +3944544544
    Италия
    
    		

День 11

Материалы

Запись трансляции 30.08.2022 Словари в Python. Калькулятор с обратной польской записью

division5.py Функция, которая определяет, есть ли в списке элемент, который делится на 5
dictionary.py Примеры с новым типом данных - словарь
count_syms.py Примеры с новым типом данных - словарь
calculator_rpn.py Калькулятор с обратной обратной польской записью

В этот день домашнего задания не было

Ссылка по выходным

Сегодня в рубрике необычная игра: https://nandgame.com В ней вы сможете познакомится с тем, как работают базовые логические элементы и собрать свой процессор. Для тех, кто хочет разобраться, как работает компьютер на самом деле.

День 10

Материалы

Запись трансляции 23.08.2022 Условия if, тип bool, цикл while

Я пересмотрел запись, мне кажется пример с калькулятором вышел переусложненным. Домашнее задание проще, оно позволит вам потренироваться на простых примерах.

functions.py Примеры создания и использования собсвенных функций
tuples.py Примеры с новым типом данных - кортежи (tuples, туплы)
calculator.py Недописанная программа калькулятор

Домашнее задание

  1. Программа должна распечатывать в столбик числа от 1 до 100. При этом если число делиться на 3, то вместо него должно печататься "fizz", если число делится на 5, то вместо него печатается "buzz", а если число делится на 15, то "fizzbuzz"

    
    Пример:
    1
    2
    fizz
    4
    buzz
    fixx
    7
    8
    fizz
    buzz
    11
    fizz
    13
    14
    fizzbuzz
    ...
    
    		
  2. Программа должна запрашивать два списка из чисел, разделенных запятыми. Программа должна печатать те числа, которые есть и в первом и во втором списке. Напишите функцию, которая в качестве аргументов принимает два списка и возвращает список из элементов, которые есть обоих списках. Используйте эту функцию в финальной программе.

    
    Пример:
    Первый список: 1,3,5,21,4,9
    Второй список: 4,10,9,1,8
    1
    4
    9
    
    		
  3. Напишите функцию, которая в качестве аргумента принимает строку, а возвращает средний символ строки. Если строка состоит из четного числа символов, то среднего символа нет и функция должна возвращать пустую строку. Например: "asdrfgh" - средний символ "r", "qqww" - нет среднего символа, функция возвращает "". Напишите программу, которая проверяет как работает ваша функция.

    
    Пример:
    Введите строку: qwert
    Средний символ: e
    
    		
  4. Напишите функцию, которая принимает строку в качестве аргумента и возвращает количество гласных в строке. Ваша программа должна проверять как работает эта функция

    
    Пример:
    Строка: Привет, ромашки
    5
    
    		
  5. Напишите программу, которая запрашивает список студентов оценками. Программа ожидает фамилию имя студента и все его оценки в семестре (разделенные пробелом). Если пользователь ввел пустую строку (нажал Enter), то программа распечатывает список студентов и средний балл каждого.

    
    Пример:
    Введите информацию о студенте: Rick Sanchez 2 2 2 2
    Введите информацию о студенте: Sasha Holmes 5 5 1 1
    Введите информацию о студенте: Anna Rose    4 4 2 2
    Введите информацию о студенте:
    Rick Sanchez 2
    Sasha Holmes 3
    Anna Rose 3
    
    		
  6. Напишите фунцию, которая в качетсве аргумента принимает кортеж (tuple) из трех элементов: (год, месяц, число). Функция должна возвращать True, если дата корректная, False, если дата неверная. Год должен быть больше нуля, месяц от 1 до 12, а число соответствовать месяцу и году. В високосных годах в феврале 29 дней, а не 28. Номер вискососного года делится нацело на 400 ИЛИ делится на 4, НО НЕ делится на 100. Напишите программу, которая проверяет работу вашей функции.

    
    Пример:
    Дата: 2000 10 21
    Дата верна
    
    		

День 9

Материалы

Запись трансляции 23.08.2022 Условия if, тип bool, цикл while

condition.py Примеры условных конструкций с if
only_even.py Распечатываем только четные числа
bool_type.py Примеры использования типа bool
only_upper.py Печатаем только слова, начинающиеся с большой буквы
while_loop.py Примеры с циклом while
friends_list.py Запрашиваем у пользователя список друзей при помощи цикла while. Печатаем сортированный список

Домашнее задание

  1. Программа запрашивает число N. Распечатайте только те числа от 1 до N включительно, которые делятся на 3 или 5.

    
    Пример:
    Число? 10
    3
    5
    6
    9
    10
    
    		
  2. Программа запрашивает строку. Если строка является корректным предложением, то программа печатает "Верно", если нет, то "Неверно". В этом задании будем считать, что корректное предложение начинается с большой буквы и заканчивается одним из следующих знаков: ".", "!", "?".

    
    Пример:
    Введите предложение: Hello world!
    Верно
    
    		
  3. Степени двойки - это числа, которые получаются перемножением двойки N раз (2^N = 2*2*2*...*2 N раз).Например 4, 8, 16 - это степени двойки, так как 2*2=4, 2*2*2=8, 2*2*2*2=16. Программа должна запрашивать число и распечатать все степени двойки меньше заданного числа.

    
    Пример:
    Число: 100
    2
    4
    8
    16
    32
    64
    
    		
  4. Напишите программу, которая реализует командрый интерфейс. Это означает, что программа должна запрашивать команду пользователя, выполнять её, выводить результат при необходимости и снова запрашивать команду. Необходимо реализовать только две команды: "exit" - программа должна печатать "Пока" и завершаться, "aaa" - программа должна печатать "AAA!". Если была введена неизвестная команда, то программа должна печатать "Неизвестная команда"

    
    Пример:
    Введите команду: rrr
    Неизвестная команда
    Введите команду: aaa
    AAA!
    Введите команду: t
    Неизвестная команда
    Введите команду: exit
    Пока
    
    		
  5. Простым называется число, которое делится нацело только на 1 и на самого себя. Например, число 7 - простое, а число 8 не является простым (8 делится нацело на 2). Напишите программу, которая запрашивает число и определяет простое оно или нет.

    
    Пример:
    Число? 17
    Простое
    
    		
  6. Программа запрашивает число N и распечатывает все простые числа от 2 до N включительно.

    
    Пример:
    Числo: 10
    2
    3
    5
    7
    
    		

День 8

Материалы

Запись трансляции 18.08.2022 Решаем задачи

text_graph.py Рисуем столбчатую диаграмму в текстовом режиме
multiplication_table.py Распечатываем таблицу умножения на 2

Ссылка по выходным

Если вам кажется скучной домашняя работа, вы можете попрактиковать Python в форме игр на сайте Сheckio. Там требуются знания базового синтаксиса языка, но мы уже скоро изучим то, что нужно. Для начального уровня есть перевод заданий на русский язык.

Домашнее задание

  1. Распечатайте таблицу умножения полностью. Используйте цикл for.

    
    Пример:
    2x1=2
    2x2=4
    2x3=6
    ...
    9x9=81
    
    		
  2. Программа запрашивает число от 1 до 9. Распечатайте таблицу умножения в виде таблицы до заданного числа включительно. Используйте цикл for. Обратите внимание на отступы перед числами в приведенном примере.

    
    Пример:
    Введите число от 0 до 9: 5
    1  2  3  4  5
    2  4  6  8 10
    3  6  9 12 15
    4  8 12 16 20
    5 10 15 20 25
    
    		
  3. Программа запрашивает строку. Посчитайте сколько раз в каждом слове встречается буква 'w' и распечатайте эти числа в столбик вместе со словами. Посмотрите документацию Python, возможно есть метод, который поможет просто решить задачу.

    
    Пример:
    Введите стоку: Test words in the wild world wow 
    Test 0
    words 1
    in 0
    the 0
    wild 1
    world 1
    wow 2
    
    		

День 7

Материалы

Запись трансляции 16.08.2022 Циклы for

for_loops.py Примеры с перебором списков и строк при помощи цикла for
words_len.py Решение задачи с подсчетом длин всех слов в строке

Домашнее задание

  1. Программа запрашивает число список друзей через запятую. Для каждого имени напечатайте Hi (имя друга)! Распечатайте общее количество друзей.

    
    Пример:
    Друзья: Rick, Morty, Lena
    Hi Rick!
    Hi Morty!
    Hi Lena!
    3
    
    		
  2. Программа запрашивает у пользователя список чисел через запятую. Распечатайте среднее арифметическое всех чисел, минимальное и максимальное число.

    
    Пример:
    Введите числа: 1,6,4,5
    4 1 6
    
    		
  3. Программа запрашивает начальную сумму вклада, процент готовых и количество лет. Распечатайте сколько денег будет на вкладе в конце каждого года. Деньги с вклада не снимаются. Проценты начисляются в конце года от текущей суммы.

    
    Пример:
    Сумма вклада: 100
    Процент годовых 10
    Количество лет: 3
    110
    121
    133.1
    
    		
  4. Программа запрашивает строку. Необходимо заменить все символы в каждом слове на точки, кроме пробелов.

    
    Пример:
    Строка: Let my people go
    ... .. ...... ..
    
    		
  5. Программа запрашивает число N. Распечатайте N первых чисел Фиббоначи. Числа Фиббоначи это последовательность чисел, где каждое следующее число равно сумме двух предыдущих. Последовательность начинается с 0 и 1. Следующее число 0 + 1 = 1, потом 1 + 1 = 2, потом 1 + 2 = 3, потом 2 + 3 = 3, и так далее.

    
    Пример:
    Число: 8
    0
    1
    1
    2
    3
    5
    8
    13
    
    		

День 6

Домашнее задание

  1. Программа запрашивает у пользователя строку и номер слова в строке. В результате должна печататься длина требуемого слова.

    
    Пример:
    Введите строку: I am loving it 
    Введите номер слова: 1
    2
    
    		
  2. Программа запрашивает у пользователя строку и номер слова в строке. В результате должно печататься слово из строки с требуемым номером, но задом наперед и только строчными буквами.

    
    Пример:
    Введите строку: How are you
    Введите номер слова: 0
    woh
    
    		
  3. Программа запрашивает у пользователя три числа через запятую, а печатает сумму этих чисел.

    
    Пример:
    Введите три числа: 11,22,44
    77
    
    		
  4. Программа запрашивает строку, а на печать выводится та же строка, но начинающаяся с большой буквы и оканчивающаяся точкой. Эту задачу можно решить несколькими способами. Если посмотрите в документацию, то сможете найти простой способ.

    
    Пример:
    Введите строку: прекрасный день
    Прекрасный день.
    
    		
  5. Программа запрашивает три числа, разделенных пробелом, необходимо напечатать минимальное и максимальное из них. Эту задачу также можно решить разными способами. Материала из занятия достаточно, чтобы быстро и элегантно решить её.

    
    Пример:
    Введите три числа: 24 19 62
    19 62
    
    		

День 5

Домашнее задание

  1. Напишите программу, которая запрашивает у прользователя сумму денег на депозите и процент годовых, а выводит сумму в конце года с учетом накопившихся процентов. Учтите, что процент годовых может быть дробным.

    
    Пример:
    Сумма на депозите: 100
    Процент годовых: 10
    110
    
    		
  2. Напишите программу, которая запрашивает у пользователя стоимость одной бутылки молока, скидку на бутылку в процентах и количество бутылок для покупки. Программа должна печатать полную стоимость покупки по оригинальной цене и по сниженной цене с учетом скидки.

    
    Пример:
    Стоимость бутылки молока: 10
    Количество бутылок: 5
    Скидка: 10
    50 45
    
    		
  3. Cохраните имена нескольких своих друзей в списке с именем names (4-6 элементов). Выведите имя каждого друга, обратившись к каждому элементу списка (по одному за раз). Скопируйте в отдельный список все элементы из names, кроме первого и последнего, распечатайтеь это список (весь сразу). Скопируйте в отдельный список каждый второй элемент из names, распечатайте новый список.

    
    Пример:
    John
    Dasha
    Rick
    Morty
    ["Dasha","Rick"]
    ["John", "Rick"]
    
    		
  4. На занятии мы очень вскользь отметили, что строки немного похожи на списки. Попробуйте обратится к элементу строки по индексу(число в квадратных скобках, text[0] 0 - индекс, номер элемента). Что является элементом строки? Можно ли поменять один из элементов строки?