Цей урок програмування буде шаленим, бо ми створимо списки Python найкращих рок-гуртів всіх часів та їх пісень!! Меломани, готуйтеся! Звісно рок буде в прикладі, але якщо ви фанатієте від іншого жанру музики, можете сміливо писати про своїх улюблених виконавців. А під кінець зможемо звірити, які списки вийшли та почати справжній музично-програмний батл! Який стиль в музиці виявиться найпопулярнішим? Який список гуртів захочеться додати у свій плейліст?
Списки у нашому житті
Списки переслідують нас всюди! Списки – друге ім’я порядку. Стоїте в черзі за морозивом ? Вітаю, ви – елемент списку! Коли будете першим у черзі, зможете скуштувати смачненьке! Розставили книжки на полиці – маєте список! Яку першу читати? А раптом ви перфекціоніст і відсортували книжки за алфавітом? Круто! Python так теж може, але про це далі. А які приклади списків у житті можете навести ви?
Як виглядають списки Python?
Для групування елементів в Python використовується список list. Він може бути записаний як індексована послідовність значень. Тобто кожен елемент має своє місце, позначене індексом.
Перший елемент має індекс 0. Це дуже важлива особливість! Запам’ятайте: програмісти все рахують з нуля (десь таке вже проходили…)!!! Другий елемент має індекс 1 і так далі.
Елементи списку не обов’язково повинні бути одного типу. Туди можна додавати одночасно рядки, числа, булеві значення і таке інше. Ок, список є, а що ж з ним робити ?
Методи списків у Python
Є багато різних функцій для роботи зі списками. Сьогодні в нашому коді буде багато нових слів. Але не лякайтеся, запам’ятовувати назви всім методів необов’язково. Головне, навчитися ними користуватися.
В пайтоні використовуються наступні методи:
- .append(), .clear(), .copy(), .count(), .extend(), .index(), .insert(), .pop(), .remove(), .reverse(), .sort()
Ці методи чарівним чином допоможуть робити різні цікаві речі зі списками. А для тих, хто сильний в англійській назви методів підкажуть, за що саме кожен відповідає! Докладніше розберемо на практиці
Практика: списки Python
Лайфхак. Для того, щоб краще розібратися у списках, можна на початку уявляти їх собі я полицю, на яку ми складаємо елементи.
1: Ось список з дуже відомими рок-гуртами та ще деякими даними:
best_bands = ['The Beatles', 'The Rolling Stones',2, 'Queen', 100, 'Nirvana', 'Led Zeppelin']
print (f"*** Список: {best_bands}")
Пам’ятаємо про поличку? Сподіваюсь, ваша уява намалювала щось схоже:
Як бачите, у списку можна зберігати не тільки рядки, а й цифри! Ви можете використати назви своїх улюблених груп і виконавців у цьому списку! Також можете додати пару цифр у різні частини списку, пізніше дізнаємося для чого.
2: Спробуйте, як працюють всі наступні команди! Напишіть код для відповідей на питання ❓, які будуть далі, це допоможе вам краще розібратися, як то воно все працює.
Всі елементи списку мають свої номери. Ці номери працюють, як адреса. За ними можна знайти будь-який елемент списку.
Індекси у списках
Перший елемент завжди має індекс 0:
# вивести елемент з індексом 0
print (best_bands[0])
# вивести номер індексу елемента 'Led Zeppelin'
a=best_bands.index('Queen')
print (f"*** index- номер місця для елемента: {a}")
❓Яка група ховається під 5 номером ?
❓ Який номер у списку має елемент ‘Led Zeppelin’ ?
Можна замінити елемент в списку:
best_bands[2] = 'Pink Floyd'
print (f"*** Список після заміни: {best_bands}")
❓Яка група замінилася на Pink Floyd?
Додавання та видалення зі списку
Далі подивіться приклади команд, які можна робити зі списками:
best_bands.append('AC/DC')
print (f"*** append- додає нову групу: {best_bands}")
best_bands.insert(1, "Metallica")
print (f"*** insert- вставляє елемент на вказане місце: {best_bands}")
❓Додайте на 3-тє місце вашу улюблену групу (або співака чи співачку)
❓Додайте в кінець списку групу, яка вам не дуже подобається.
❓Дізнайтесь, який номер у списку має елемент ‘Nirvana’
Так виглядає команда видалення елементу:
del(best_bands[3])
print (f"*** del- видаляє елемент по номеру: {best_bands}")
best_bands.remove ('AC/DC')
print (f"*** remove- видаляє елемент по назві: {best_bands}")
❓Видаліть зі списку групу, яка не дуже подобається з минулого завдання, а також видаліть зі списку всі числа
❓Що буде, якщо спробувати видалити номер елементу, якого не існує у списку ? (Скажімо у списку 10 елементів, а ви видаляєте елемент номер 20)
❓Що буде, якщо видалити елемент з номером -2 ?
Сортування списку і визначення кількості елементів
best_bands.sort()
print (f"*** sort- сортує за алфавітом: {best_bands}")
best_bands.reverse()
print (f"*** reverse-сортує за алфавітом ззаду наперед:{best_bands}")
n=len(best_bands)
print (f"**** len-Скільки елементів у списку: {n}")
Важливо! Функції сортування працюватимуть тільки для списків, в яких або всі рядки або всі числа. Тому видаліть числа з вашого списку, якщо не зробили це раніше!
Числові списки Python та операції з ними
Створіть список чисел, як показано нижче.
numb=[4,6,2343,100,0,4,7,43,100,13000]
print (f"*** max елемент: {max(numb)}")
print (f"*** min елемент: {min(numb)}")
print (f"*** Скільки разів зустрічається елемент у списку:\n {numb.count (100)}")
❓Спробуйте дописати у початковий список чисел від’ємне число. Чи спрацюють функції правильно?
Ще більше функцій…
3: Стомилися ? А ще ж стільки цікавих речей можна робити зі списками! Погнали!
Давайте створимо два списки. Команда плюс може додавати списки. У прикладі новий список записується у першу змінну:
lst = [100, 'guitar', 'microphone', 2, 100, 'piano']
lst2 = ['violin','drums']
lst=lst+lst2
print (lst)
Результат буде такий: [1, ‘guitar’, ‘microphone’, 2, 100, ‘piano’, ‘violin’, ‘drums’]
pop – витягає елемент зі списку по індексу. Далі список живе собі без цього елемента:
print (lst)
print (lst.pop (2))
print (lst)
оператор in – перевірка елемента. Чи є він у списку:
print (f"*** Чи є елемент 2: {2 in lst}")
print (f"*** Чи є елемент 9: {9 in lst}")
❓Перевірте чи є у списку елементи 13 та 100
extend () – аналогічний append (), але додає кілька елементів відразу:
lst.extend ([3,4])
print (f"*** extend додає кілька елементів відразу: {lst}")
Додаткові завдання на урок.
4: Оберіть собі ОДИН список з поданих 6-ти варіантів.
- Створіть список з назвами всіх предметів у рядку і виведіть його на екран
- Видаліть зі списку предмет, який не підходить.
- Додайте в кінець списку предмет, який підходить.
- Додайте ще один предмет, який підходить групі другим у список.
- Виведіть на екран список, який вийшов
5: Створімо програму, яка допомагає запам’ятовувати іноземні слова. Для цього створіть список wordsEn з 5-ти слів англійською мовою (можна взяти іншу мову, але тоді змініть назву змінної). Створіть список wordsUa з перекладами слів першого списку. За допомогою циклу програма має по черзі запитувати слова у користувача слова українською мовою. Коли користувач ввів англійський відповідник слова – програма пише, правильно переклав користувач чи ні.
Для того, щоб запитувати слова, використайте цикл(цикл працюватиме, доки й менше ніж довжина списку). Кожне слово буде записуватись у циклі як wordsEn[i] або wordsUa[i]
6: Створіть список відомих людей, яких ви взяли б з собою в пригоду.
- виведіть список на екран
- додайте в цей список ваших друзів
- додайте в цей список одну тварину, яка вам подобається та одну, яка не подобається
- замініть тварину, яка не подобається на пташку, яка подобається
Відео з гарним поясненням, що таке списки у Python
Домашнє завдання
1: Складіть список улюблених футбольних команд або книг або телепередач або ігор (від 6 штук).
Все, що далі описано, треба виконати використовуючи функції списків!!!!
- Виведіть на екран найулюбленішу за допомогою індексу.
- Додайте у ваш список одну команду/книгу/телепередачу/гру, яка вам не подобається.
- Видаліть команду/книгу/телепередачу/гру, яка не подобається
- Відсортуйте список за алфавітом
- Порахуйте довжину списку (скільки всього елементів у вашому списку)
2:
- Складіть список міст, які ви хотіли б відвідати. (cities)
- Складіть інший список, який буде містити країни, які ви хотіли б відвідати (countries)
- Об’єднайте списки. (cities.extend(countries) або +)
- Відсортуйте елементи за алфавітом і виведіть їх на екран.
- (Додаткове-Необов’язкове) Додайте можливість випадково вибрати місце для наступної подорожі та написати: “Спочатку полетімо в місто (країну) % _______%”.
Підказка:
Для цього завдання у першому рядку програми додайте нову бібліотеку:
import random
З цією бібліотекою ми познайомимося дуже скоро, але ви вже можете спробувати працювати з нею.
Далі, в кінці програми додайте:
place=random.choice(cities)
Цей рядок запише у змінну place випадкове місто чи країну. Далі вам треба буде вивести її на екран, має бути, наприклад так:
“Спочатку поїдьмо в місто (країну): Барселона”
Level Up!
1: Створіть список з 10 або більше чисел з повторюваними значеннями. За допомогою функцій списку знайдіть:
- Скільки чисел у вашому списку
- Скільки разів повторюється певне число
- Мінімальний елемент в списку
- Максимальний елемент в списку
2: Створіть програму, яка буде допомагати вибрати що почитати, яке кіно подивитись, де відпочити та в які настільні ігри пограти:
- Створіть список книжок (мін. 3 штуки)
- Створіть список класних фільмів (мін. 3 штуки)
- Створіть список місць у вашому місті або селі, де можна класно провести час (мін. 3 штуки)
- Створіть список цікавих настільних ігор (мін. 3 штуки)
- Програма має випадково обирати з кожного списку один елемент та запропонувати користувачу книжку, фільм, місце та настолку. (У виконанні вам допоможе бібліотека random та останнє завдання домашки)
Приклад роботи програми:
Ця програма обрала тобі такі цікавинки:
Почитай книжку “Часодії”, вона дуже захоплююча!
Подивись фільм “Чудо”, він тобі має сподобатись!
На вихідних сходи до музею “Машини часу”, там можна класно провести час
А потім пограй з друзями у “Code names”, це дуже крута настільна гра!
Ще більше інформації про списки у Python читайте тут. Англомовний ресурс, але це навіть прикольно😉!
Не зупиняйтесь у вивченні Python! До зустрічі на наступних уроках!