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.
- Створіть список
gradesізcваших оцінок. - Виведіть список, кількість оцінок, їх суму, найкращу й найгіршу оцінку та середнє з двома знаками після коми.
- Виведіть оцінки, впорядковані від найкращої до найгіршої, а одразу після цього — оригінальний список
grades, який має лишитися незмінним. - Виведіть три найкращі та три найгірші оцінки.
- Виведіть, якою за порядком (рахуючи з одиниці) була ваша найгірша оцінка.
- Виведіть список оцінок, вищих за середнє, та їх кількість.
- Виведіть, чи є серед ваших оцінок
12і чи є1. -
Змініть список, виводячи його після кожної зміни:
- додайте в кінець оцінку
c % 12 + 1; - вставте на початок оцінку
12; - вилучіть найгіршу оцінку;
- вилучіть останню оцінку й виведіть, яку саме.
- додайте в кінець оцінку
-
Виведіть, скільки разів у списку трапляється
12. - Відсортуйте сам список
grades, не створюючи нового, і виведіть значення, яке повернула операція сортування.
Завдання 2. Прізвище як список літер¶
Файл task2.py.
- Створіть список
lettersз літер вашого прізвища в нижньому регістрі. Виведіть його та його довжинуc. - Виведіть першу, середню та останню літеру. Останню отримайте двома різними способами.
-
Виведіть:
- перші три літери;
- усі літери, крім перших трьох;
- кожну другу літеру;
- усі літери у зворотному порядку;
- останні дві літери;
- частину списку довжиною 5, що починається з позиції
c.
-
Отримайте список
unique— літери прізвища без повторів у порядку першої появи. Для кожної літери, яка трапляється більше одного разу, виведіть кількість повторів. Якщо повторів немає — виведітьNo repeated letters. - Виведіть літери прізвища в алфавітному порядку.
Завдання 3. Предмети семестру¶
Файл task3.py.
Програма складається лише з функцій і одного виклику main() наприкінці файлу.
- Створіть список
subjectsізnваших предметів цього семестру. Кожен предмет — кортеж(title, pairs, grade): назва латиницею, кількість пар на тиждень за вашим розкладом і ваша оцінка (реальна або очікувана). - Виведіть таблицю предметів з нумерацією від
1. - Виведіть, скільки всього пар на тиждень у вас із цих предметів.
- Виведіть предмет із найбільшою кількістю пар на тиждень і предмет із найнижчою оцінкою.
- Виведіть окремо список назв предметів, список оцінок і середню оцінку.
- Виведіть назви предметів з оцінкою
10і вище. - Для кожного предмета виведіть «гістограму» — стільки символів
#, яка оцінка. - Уявіть, що ви перездали предмет із найнижчою оцінкою і отримали на
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