Skip to content

15. (П7) Виконання завдань зі списками та кортежами

Мета роботи

Навчитися створювати та змінювати списки, звертатися до їх елементів і частин, шукати, рахувати й сортувати дані, описувати фіксовані записи кортежами, а також розрізняти копію списку та друге ім'я того самого об'єкта.

Персоналізація обов'язкова

Кожне завдання має працювати з вашими справжніми даними: прізвищем, групою, датою народження, оцінками, предметами цього семестру. Роботи з абстрактними [1, 2, 3], ("a", "b") або з даними іншого студента не приймаються.

Підготовка

Кожне завдання виконуйте в окремому файлі: task1.py … task3.py. Теоретичний матеріал — лекція 14.

Ваші персональні дані

Перш ніж почати, випишіть ці значення — вони знадобляться в усіх завданнях.

Позначення Звідки береться Приклад Завдання
name ваше ім'я латиницею Ivan усі
surname ваше прізвище латиницею Petrenko усі
group ваша група PZ-11 усі
year рік вашого народження 2007 3
birthday дата народження рядком DDMMYYYY "14032007" 5
c кількість літер у вашому прізвищі латиницею 8 1, 2
n кількість літер у вашому імені латиницею (мінімум 4, максимум 8) 4 3
оцінки ваші реальні оцінки (1–12) за останні c контрольних, тестів або практичних 10, 7, 9, … 1
предмети n ваших предметів цього семестру з кількістю пар на тиждень (за розкладом) і оцінкою Programming, 3, 11 3

Хід роботи

Завдання 1. Список власних оцінок

Файл task1.py.

  1. Створіть список grades із c ваших оцінок.
  2. Виведіть список, кількість оцінок, їх суму, найкращу й найгіршу оцінку та середнє з двома знаками після коми.
  3. Виведіть оцінки, впорядковані від найкращої до найгіршої, а одразу після цього — оригінальний список grades, який має лишитися незмінним.
  4. Виведіть три найкращі та три найгірші оцінки.
  5. Виведіть, якою за порядком (рахуючи з одиниці) була ваша найгірша оцінка.
  6. Виведіть список оцінок, вищих за середнє, та їх кількість.
  7. Виведіть, чи є серед ваших оцінок 12 і чи є 1.
  8. Змініть список, виводячи його після кожної зміни:

    • додайте в кінець оцінку c % 12 + 1;
    • вставте на початок оцінку 12;
    • вилучіть найгіршу оцінку;
    • вилучіть останню оцінку й виведіть, яку саме.
  9. Виведіть, скільки разів у списку трапляється 12.

  10. Відсортуйте сам список grades, не створюючи нового, і виведіть значення, яке повернула операція сортування.

Завдання 2. Прізвище як список літер

Файл task2.py.

  1. Створіть список letters з літер вашого прізвища в нижньому регістрі. Виведіть його та його довжину c.
  2. Виведіть першу, середню та останню літеру. Останню отримайте двома різними способами.
  3. Виведіть:

    • перші три літери;
    • усі літери, крім перших трьох;
    • кожну другу літеру;
    • усі літери у зворотному порядку;
    • останні дві літери;
    • частину списку довжиною 5, що починається з позиції c.
  4. Отримайте список unique — літери прізвища без повторів у порядку першої появи. Для кожної літери, яка трапляється більше одного разу, виведіть кількість повторів. Якщо повторів немає — виведіть No repeated letters.

  5. Виведіть літери прізвища в алфавітному порядку.

Завдання 3. Предмети семестру

Файл task3.py.

Програма складається лише з функцій і одного виклику main() наприкінці файлу.

  1. Створіть список subjects із n ваших предметів цього семестру. Кожен предмет — кортеж (title, pairs, grade): назва латиницею, кількість пар на тиждень за вашим розкладом і ваша оцінка (реальна або очікувана).
  2. Виведіть таблицю предметів з нумерацією від 1.
  3. Виведіть, скільки всього пар на тиждень у вас із цих предметів.
  4. Виведіть предмет із найбільшою кількістю пар на тиждень і предмет із найнижчою оцінкою.
  5. Виведіть окремо список назв предметів, список оцінок і середню оцінку.
  6. Виведіть назви предметів з оцінкою 10 і вище.
  7. Для кожного предмета виведіть «гістограму» — стільки символів #, яка оцінка.
  8. Уявіть, що ви перездали предмет із найнижчою оцінкою і отримали на 2 бали більше (але не більше за 12). Оновіть subjects так, щоб кожен предмет і далі був кортежем, і виведіть результат.

Приклад роботи програми:

Ivan Petrenko, PZ-11
#  Subject        Pairs  Grade
1  Programming        3     11
2  Math               2      8
3  English            2     10
4  Physics            1      6
Pairs per week: 8
Most pairs: Programming (3)
Weakest subject: Physics (6)
Titles: ['Programming', 'Math', 'English', 'Physics']
Grades: [11, 8, 10, 6], average: 8.75
Grade 10+: ['Programming', 'English']
Programming: ###########
Math: ########
English: ##########
Physics: ######
Retake: Physics 6 -> 8
Subjects: [('Programming', 3, 11), ('Math', 2, 8), ('English', 2, 10), ('Physics', 1, 8)]

Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub