UNIT_05_UA (30.06.2026) Python Basic with AI (14.07.2026) — Transcript

Урок з Python про рядки: їх властивості, ітерації, незмінність та практичні приклади з генератором пароля.

Key Takeaways

  • Рядки в Python є незмінними, тому для частих змін краще використовувати списки.
  • Ітерація по рядках і робота з індексами схожа на списки, але з особливостями.
  • Конкатенація та множення рядків — корисні інструменти для обробки тексту.
  • Практика розв’язання задач і робота з алгоритмами є ключем до розуміння програмування.
  • Знання кодувань важливе для коректної роботи з різними мовами та символами.

Summary

  • Огляд рядків як колекції символів та їх основних властивостей у Python.
  • Пояснення незмінності рядків (immutable) і наслідків для роботи з ними у циклах.
  • Порівняння рядків зі списками та рекомендації щодо використання списків для частих змін.
  • Ітерація по рядках за допомогою циклів та використання індексів і зрізів (слайсів).
  • Конкатенація рядків і множення рядків на число для створення повторень.
  • Обговорення кодувань (ASCII, Unicode) та їх впливу на роботу з рядками.
  • Використання функцій для роботи з рядками, таких як title, join, split, а також форматування.
  • Приклади практичних завдань, включаючи генератор пароля та домашні завдання з алгоритмів.
  • Поради щодо навчання програмуванню з нуля та важливість практики на задачах.
  • Обговорення логування та роботи з текстовими файлами у майбутніх уроках.

Full Transcript — Download SRT & Markdown

04:27
Speaker A
Добрий вечір. Добрий вечір. Так, сьогодні ми з вами будемо розглядати рядки. Це така наступна у нас колекція. Ну, тип даних, так, але воно є якби такою колекцією послідовністю символів. От подивимося, які є можливості у рядків і також подивимося
04:51
Speaker A
приклад. Це у нас буде генератор пароля, так, який ми не встигли на попередньому уроці розглянути. От такий у нас план на сьогодні.
04:59
Speaker A
Можливо, є якісь питання по попереднім урокам? Скажіть, будь ласка. Ну, перед тим, як почнемо.
05:07
Speaker A
А воно завжди так, ніби щось вивчив, ніби щось зрозумів, але нічого не зрозумів, але при цьому щось зрозумів. Я не знаю, як це пояснити. [сопіння] Ну, скоріше, мабуть, проблема в тому, що ви, коли хочете щось зробити з нуля, так, це
05:22
Speaker A
здається складним або що саме? Ну так, так. Ось з нуля, припустимо, зробити домашнє завдання. Мені перед тим, як зробити домашнє завдання, треба пару днів потикатися, задачі порішати, і тільки потім до мене доходить. А от щоб одразу взяти і
05:37
Speaker A
це нормально. Якщо ви раніше ніколи не програмували, ну тобто у вас взагалі немає ніякого досвіду в цьому, це цілком нормально.
05:44
Speaker A
Ну так, з нуля взагалі. Дада. Тому тут треба, ну, скажімо, набратися певної кількості досвіду. Ну, тобто, щоб мислення почало працювати саме так алгоритмічно. Потім це все буде простіше. Тобто треба набути навик такий. Тому спочатку це складно, так.
06:01
Speaker A
Ну я сам, коли вчився у свій час, теж з такою проблемою стикався. Тут треба просто різних побільше задач розв’язувати, якихось алгоритмів. Еее, ну домашки, так, це таке. І там leetcode, наприклад, codewars там, щось таке.
06:17
Speaker A
[сопіння] Ресурси, так, на яких є різні алгоритми. Ну так, я сиджу потім ще по 3 години сиджу, задачки розв’язую, бо воно так в голову не лізе, якщо не розв’язувати. Так, так, так. Ну, це нормально. Тобто тут не
06:27
Speaker A
переживайте, тут нічого такого немає в цьому. Це, ну, це у всіх по-різному. Хтось швидко схоплює, хтось повільніше, хтось середнє. Це о’кей. Головне, ну, як би в процесі бути, тобто це все розв’язувати, не кидати. Ось.
06:42
Speaker A
Зрозумів. Дуже дякую. Угу. Так, просто. Окей. Так, ну давайте тоді перейдемо до наших рядків.
06:50
Speaker A
Час нам треба би так отримати таку базу всяких знань, так, і потім ми будемо там більше прикладів якихось дивитись. Під прикладами я розумію якісь саме програми цілісні, так?
07:02
Speaker A
От, значить, у нас є така колекція, яка зветься string, тобто, е, рядок. Рядок — це у нас масив різних символів.
07:11
Speaker A
Тобто там можуть бути будь-які символи, окрім, ну, якщо ви пишете якісь спецсимволи, те, що ми частково почали вивчати \n, \b, так, там всякі такі, вони мають вплив на рядок. А так все інше воно просто буде як символ
07:26
Speaker A
друкований, який буде показуватись. Тому, коли ми пишемо, давайте запущу, так, коли ми пишемо такий рядок, ну, неважливо який рядок, так, ми можемо звернутись по індексу прямо як у списках. Тобто тут дуже схоже, я якраз на попередньому уроці, ну так, уроки
07:43
Speaker A
казав, що якщо ви зі списками розберетесь, то деякі теми звідти, так, вони будуть також актуальні тут, бо воно схоже, але є свої нюанси, звісно. Значить, у нас ми звертаємося по індексу, тому що під капотом у нас є це
08:03
Speaker A
це така колекція, як масив чарів. Ну, у нас немає типу даних char, як такого, так, char — це символ. Наприклад, у багатьох мовах є такий тип і просто різних символів.
08:16
Speaker A
Ми можемо звернутись, отримати там перший елемент, наприклад, так, тобто і так далі. Прямо як у списках. Можемо довжину дізнатись, але є такий нюанс, що ми не можемо змінювати рядок. Тобто рядок є immutable колекцією. І це, ну, скажімо
08:30
Speaker A
так, майже у всіх мовах програмування так воно реалізовано під капотом. Що це означає? Тобто, що ми не можемо змінити значення. Тобто, наприклад, якщо ми звернемося по індексу, так, і спробуємо записати якесь нове значення, у нас буде помилка. Тобто
08:48
Speaker A
він скаже, що у нас string object does not support item assignment. Це означає, що змінити ми не можемо. Тобто і тут треба запам’ятати, що будь-яка зміна рядка, ну, як без зміни рядка, це просто буде під капотом створюватись новий рядок. Тобто, якщо
09:04
Speaker A
ви, наприклад, зробите ну, припустимо, там у вас буде якийсь там текст, так, ви напишете for, там i, щось таке, ну, і будете додавати, я не знаю, там рядок якийсь, букву якусь, не знаю, там букву Т, неважливо, [хекання] так, то у вас під капотом, тобто ви
09:31
Speaker A
будете що бачити, тобто ніби у вас створився рядок, [сопіння] який зараз треба от це закоментувати, який отак виглядає, так, тобто 10 букв Т.
09:45
Speaker A
Але насправді під капотом у вас було створено 10 рядків, тобто 10 об’єктів.
09:50
Speaker A
[сопіння] І це є, ну, не дуже добре. Тобто вихід тут треба який зробити, що якщо ви хочете змінювати рядок, ну, тобто там якийсь рядок багато разів там у циклі, наприклад, чи ще якось, то можливо вам треба використати список, а
10:07
Speaker A
не рядок, так, а потім привести вже елементи цього списку до рядка за допомогою функції join, наприклад.
10:17
Speaker A
Тому такий от є нюанс, треба його [зітхання][хекання] запам’ятати. Ось. І що тут у нас є? Ну, так от там рядок записали, змінювати ми не можемо в іншому, тобто у нас є від’ємні індекси. Ну, так само, як у списках.
10:34
Speaker A
Тобто тут нічого нового у нас не з’явилось. Ось. Далі ми можемо рядки перебирати циклами. Ну, тобто так як це у нас як би така послідовність символів, так, то ми можемо це циклом перебрати.
10:51
Speaker A
От ми бачимо двічі Hello World. Тут я через пробіл це зробив. Ну просто, щоб візуально воно якось так виглядало більш, що ми там якось по-іншому це виводимо. Просто приклади, які показують, що ви можете зробити аналітику посимвольно. Тобто ви берете
11:05
Speaker A
якийсь символ, перевіряєте його, так, там окей, не окей. І, наприклад, ви можете якусь там фінальну послідовність робити. У вас якраз у домашці таке буде, що вам треба буде використати цикл. Ну, ми обговоримо, звичайно. І якщо ви хочете
11:20
Speaker A
[прочищення горла] працювати по індексах, то використовуйте range. Ну, ми на попередньому уроці з вами CCL for розглядали і там я якраз казав, що range — це індекси, а якщо просто значення та безпосередньо, то краще таким чином використовувати цикл form.
11:40
Speaker A
Також у нас є слайси, зрізи. Треба це ще раз розповісти, чи пам’ятаєте? Ну, працюють вони один в один, як у списках.
11:51
Speaker A
Зрозуміло. Там все окей. Ось. А чому зрізи у нас працюють? Тому що вони повертають копію. Тобто вони не змінюють оригінал. Тому зрізи у нас тут є. Знову ж, якщо забули чи там не вивчили, що таке слайси ці, то будь ласка, подивіться попередній
12:10
Speaker A
урок. Тобто це четвертий урок у нас. Там ми це розглядали, там навіть більше було прикладів. Ну, просто на те, як воно працює. [хекання] Далі, ще із таких невеличких можливостей — це конкатенація.
12:24
Speaker A
Я в цілому вам це розповідав на якомусь із уроків, ну, так, мельком. Тобто конкатенація — це коли ми рядки складаємо і у нас виходить один великий рядок.
12:36
Speaker A
Все. Ну, такий процес. Треба запам’ятати, так, що таке конкатенація. Ну, це знову ж може бути зручним, якщо ви пишете якийсь текст. Ви там з одного файлика отримали редокс, з другого, з третього, так, і потім ви хочете це склеїти і
12:48
Speaker A
записати в якийсь там, не знаю, четвертий файлик. Так що таке із таких ще можливостей можемо рядок помножити на число. Ну, із практичної користі. Тут, наприклад, ми можемо, якщо вам треба якийсь сепаратор зробити, ну, у вас є там текст, так, і ви в цьому
13:05
Speaker A
тексті хочете якісь секції такі зробити, там логи якісь. Пишете лог — це виходить опис того, що відбувалося з програмою. Ну, як би такий журнал подій різних, так, це потім будете таке робити логери. Ну, це у вебі частіше всього
13:26
Speaker A
використовується. Ми з вами просто в текстовий файлик будемо писати. У нас текстові файли, коли вони там будуть, от на 12-му році аж будуть. Та ми подивимося. [сопіння] Ну і також у нас є Можна питання?
13:41
Speaker A
Так, можна. А от ви щойно вивели, ну, тобто результат ось це Hello, кома Hello.
13:47
Speaker A
Я просто не зрозумів, чому саме такий результат показало. Ну, помножити на три воно продублювалося. Це все одно, що взяти ось цей ось цей рядок і ось так зробити. Ну от, що- А все, я не побачив. Просто без пробілу.
14:02
Speaker A
Так, д
14:08
Speaker A
Угу. Всё, спасибо. Окей. Так. А-а, ну і ми можемо порівнювати рядки. Я так кажесь, на попередньому уроці я щось таке вам показував. Там у нас був список е рядків, да, і ми порівнювали, який там список рядків у нас или асортировали ще щось таке ми там
14:28
Speaker A
робили. От. Ну, і тут конкретно у нас такий приклад ABC, ABS. Да. І у нас буде, якщо ми запустим ABS, у нас буде більше, ніж ABC. Ну, понятно, в такому форматі якби зачем вам порівнювати рядки, да? Ну, какой с этого толк, но це
14:44
Speaker A
потрібно для этих сортувань всяких. То есть, коли ви захотите по якомусь принципу там, ну, пишете алгоритм сортування чи якийсь стандартний використовуєте і хотите відсортувати текст по каким-то там, не знаю, по якомусь принципу.
15:01
Speaker A
І от тут, да, то есть як воно буде сортувати по алфавіту, а як алфавіт. То есть у кожного символа букви є свій цілочислений еквівалент. І у нас є отакі функції ort hча.
15:15
Speaker A
То есть ord воно дозволяє узнати цілочислений еквівалент символа. Ну, будь-якого символа. Не обов'язково це може бути буква, да, тость будь-який символ.
15:25
Speaker A
Але якщо ви використовуєте аски кодіровку, то це має бути латиница. Якщо ви використовуєте unнікод, то у вас може бути кирилица і що угодно, там будь-які інші якісь мови.
15:39
Speaker A
А поясніть ще раз це, будь ласка, оце що ви сказали. А, ну да, я якщо використовувати код, просто я оце не зрозумів.
15:46
Speaker A
Угу. Окей. Дада. Да. Я якраз на попередньому уроці відкривав це. Щас ще раз давайте якраз більш детально обсуд оно. А от, то есть у нас е всі символи, да, з якими ми працюємо, то есть ну будь-які символи абсолютно вообще, да,
16:00
Speaker A
то есть це може бути якісь печатные символи, не печатные. Не печатные - це ті символи, які ми не бачимо. То есть, наприклад, якийсь там перенос на новий рядок, там натискание Enter, как бы как перенос каретки. Коретка - це вот этот,
16:13
Speaker A
що блимает, да, в тексте курсорчик. Ну, от у будь-яких символов є свій целочисленний еквівалент. Ну, от, наприклад, у нас от, да, от в е-е для A, предположим, да, це 97 цілочисленний еквівалент значення, да. І от ви можете побачити, що ці числа вони
16:32
Speaker A
відсортовані от від меншого до до більшого. Ну і, соответственно, їх їх ее символи, да, букви з алфавіта, і вони також в алфавітному порядке розташовані.
16:45
Speaker A
От. То есть, а в процента теж буде тоді якась якась цифра, конечно. Процент 37%це 37 Да. Ну то комп'ютер ці поряд, а поряд ці числа ви кажете ось там, а біля 3725 045 що то за це в різних кодіровках. Ну то есть от от
17:03
Speaker A
якщо ви про ці цифри три колонки, це різні кодировки. То есть в залежності від того, ойти не кодировки, а системы счисления. Правильно сказаления, які там використовуются там десятичная и так далі, да? Вот. Ну, ми ми оцей ця у нас
17:20
Speaker A
по замовченню використовується. І тому у нас, коли ми, скажемо, сортуємо щось, то він орієнтується на оцю послідовність чисел. Ну, то есть коли ви пишете якісь символи, да, то він якби отримує цифру.
17:37
Speaker A
А інші ми будемо використовувати оці, що поряд, да, за які ви Можна, да. Ну, це для більш таких специфічних ситуацій. Ми, коли файли будемо розглядати, там про це ще поговоримо, тому що там ми зможемо якраз більш з скадіровками
17:51
Speaker A
попрацювати. От тому це чуть пізніше буде. А пока е-е от для того, щоб ви зрозуміли по якому принципу воно порівнює, да, то есть як воно розуміє, що у нас є більшим, а що є меншим, то це у нас є,
18:09
Speaker A
ну, оці, е, якраз целочисельні еквіваленти. Якщо ж ви, наприклад, будете писати щось на українській мові, то воно не буде працювати, да, тому що це є кирилица і для кирилі треба використовувати unнікод, ну или якісь подвіди юнікода, тому що якщо не
18:25
Speaker A
використовувати unнікод, у вас будуть якісь крокозябри. Ну, то есть будуть питатися якось там зрозуміти, що це за символ. Ну, ви наверняка таке колись бачили, да, відкриваєте файлика, а там что-то непонятное.
18:36
Speaker A
І якраз от сключение юнікода і все таке. ми подивимося в темі з файлами, тому що там воно буде якби так наглядно, да? А вот поэтому там у нас це буде. А так ви можете подивитись опять же е-е ну тут дивіться багато
18:54
Speaker A
всяких подвідов, в яких є юнікода, в яких є там, наприклад, от кирили кирилица. Так, ну це вже соответственно, ну, тут всякі букви якісь там, тонікоди - це типу певний набір якихось символів, чи як правильно?
19:15
Speaker A
Це це таблица така, яка в себя вмещает багато інших символів, яка не входит в аске. То есть це як бы как такие наборы символов и целочисленных эквивалентов. В них в різних системах счисления. Ну отки оцей, це у нас що там этот American Standard
19:34
Speaker A
Code for information interchange, то есть це у нас тільки латиница і деякі такі там е ну базовые символи, ну от які ви тут бачите. От є ще extended ask codes, то есть це набор псевдографіки. То есть от те, що
19:51
Speaker A
ви бачите, вот эті всякіе непонятные штуки, це для псевдографіки. Що це таке? Це коли в консолі, ну, это в C++ зазвичай більш актуально или там C#arp консольний, ну, намалювати щось, е-е, там якесь там рамочку якусь там, да, или так, що-небудь юайчик какой-то.
20:09
Speaker A
О, там чаще всього це використовується. А так, якби вы вряд ли это будете десь там використовувати, якщо ви з вебом будете працювати конкретно.
20:19
Speaker A
Так, що таке? Є ще, наприклад, така кодіровка, це Windows CP 1251 1252. Ну, такі там две. І це така Windows специфическая кодировка.
20:32
Speaker A
І вона містить латиницу та кирилицю. Ось. І можна її використовувати. Тоді ви там пишете щось на мові і все окей, да? Ну, то есть воно відображається коректно, но це цією кодировкою і вона більш нічого там не не містить. То есть вона така як урезана,
20:49
Speaker A
але ми є не користуємося, тому що вона специфічна до вінди. Ну понятно, що ніж не все ж він користуються. То есть у вас може бути, даже якщо ви користуєтесь Windows можете, скажемо там, зберігати ваш сайт, ну, за деплойтівого, то есть він там буде
21:06
Speaker A
розврнутий, то есть він буде працювати, наприклад, там в Linux контейнерах якихось там і там до do докеer контейнери, да, там теж така штука.
21:15
Speaker A
потім будете вивчати і на Лінуксі вони будуть. Ну, а Linux він не розуміє, що це скодіровка, і тому там треба UNнікод використовувати.
21:24
Speaker A
Поэтому зазвичай ми користуємося завжди нікодом, якщо у вас, е, там підтримка міжнародних якихось символов, ну, ну, букв і так далі. Отак.
21:38
Speaker A
Ну, ми ще до цього повернемось, як я казав, в файлах. Ну, зараз зрозуміло, то есть принцип, да, по якому, ну, більш-менш, да, ну, ну, більш-менш тут как ну то есть, ну, вот буні цифра це ясно, да, я просто до того, що коли
21:51
Speaker A
вже безпосередньо будемо з цим стикатись, тоді вже детальніше, да, да. Ну, це це все буде в файлах, да, тому що ми будемо писати щось файлик.
21:57
Speaker A
Ну, зараз какби, ну, що ми там рядок створюємо, тут нічого цікавого пока що не происходит. А от потім, коли будемо файлик писать там, да, там я покажу. Ну, треба почекати чуть-чуть, що в нас по темам воно пізніше.
22:12
Speaker A
От. А, ну, по крайней мере, от ми бачимо, да, то есть, що воно сортує. По якому принципу? То есть ми можемо зрозуміти. І [прочищення горла] коли ви використовуєте функцію sort, яку я вам показував на попередньому уроці в рядках, ой, тих, в списках, наприклад,
22:27
Speaker A
ну, в рядках немає функції sort своєї, то есть ви можете використовувати функцію sortтed, яка повертає копію, якби, да? Ну, то есть можна, но в любом случае, то есть под капотом воно воно буде порівнювати по такому принципу. Ну, как як как як как воно
22:45
Speaker A
буде розуміти, да, то есть що там на первом месте, на втором і так далі.
22:48
Speaker A
[хекання] Ну, і от можемо подивитись, є такі допоміжні функції. Ор - це цілочислений еквівалент, да? От, наприклад, ми пишемо A большую і бачимо, де вона там A большая у нас с65, да? Ну, да. І вот с 65. Далі ми зворотню
23:05
Speaker A
дію робимо. Пишемо чар, то есть чар цифру він каже, то есть найді мені, що там за чар - это означає символ.
23:14
Speaker A
Не буква якась, а просто символ. І він нам показує a. Ну, то есть ми дві сторони. От, наприклад, ми написали чар 99 і це у нас маленька C. То есть от можемо побачити 99 - це C. То есть у
23:27
Speaker A
великої C 67 буде, да, значення. І о так. Так що такі функції. Да, Борис, [прочищення горла] я сори прослушал. Я просто не совсем понял, для чего нам вообще в принципе узнавать эти данные нужно.
23:46
Speaker A
Вот эти имена. Да. Да. Ну это для всяких сравнений. Вообще, я же говорю, для сортировок. Ну то есть если у вас какая-то будет своя кастомная сортировка текста, ну то есть вы по какому-то принципу отхоти захотите отсортировать строчки в тексте.
24:02
Speaker A
для этого. Ну, то есть у вас есть набор там, не знаю, строчек, и вы хотите их как-то отсортировать не просто по алфавиту, а, например, я не знаю, там по какому-то другому принципу, там, не знаю, какой-то другой придумать принцип и по нему сортировать,
24:15
Speaker A
соответственно. Угу. Всё, плюс. Понял. Спасибо. То есть сортировки, да, не только сортировки, на самом деле, ещё есть всякие варианты, но это мы уже к файлам пойдём, там посмотрим.
24:28
Speaker A
Вот. [зітхання] О'кей. [хекання] Так що у нас далі? Далі у нас є Так, перес там эту смайлика уберите этот, щоб я, ну, буду думать, что у вас вопрос. Спасибо.
24:42
Speaker A
Далі у нас є набір функцій. Функцій, які є у рядків. Давайте мы сейчас швиденько их обсудим. Я я понимаю, що це, конечно, скучно слушать, но треба це все ж таки зараз послухати, щоб ви хотя би знали, що ці функції є, да? Ну, то есть якби от
24:57
Speaker A
функція, як вона працює. А далі ми будемо этот самий, як вон там, генератор пароля писати. Ну, в мене він вже написаний, но мимо його разом напишемо окремо, да, щоб так от там вместе подумать і все такое. І якраз будемо
25:12
Speaker A
використовувати функції рядків і списков. Так давайте пройдёмся, подивимося ці функції, да, щоб знать, як вони працюють.
25:24
Speaker A
всі функції. Понятно, у вас є конспект, який я завантажив в тему урока. Ви можете скачать і подивитись. А так ви, якщо, наприклад, там працюєте с какой-то задачей і вы хотите подивитись вообще все доступные функції, які існують, ви просто відкриваєте
25:43
Speaker A
Google, да, документацію чи будь-який просто, ну, краще официальную документацію Пайтона, но она такая скучная немножко, то есть там такая она не дуже дружелюбная, такой дизайн странный, неудобно. Ну, можна просто, наприклад, якийсь там сайт подивитись, да, з со списком функций
26:02
Speaker A
також. Ну, это как в целом зазвичай это происходит. Ну, я тут выписал, да, давайте посмотрим. Значит, тут спеціально я створив отакий рядок странний для того, щоб показати, як працюють деякі функції. Значить, у нас є функції, які повертають true чи false,
26:19
Speaker A
то есть для всяких перевірок. Из альфа повертає тру, якщо в рядке тільки эти самые буквы. То есть вот как это применить, да? Перший приклад. То есть вы берёте, просите від користувача ввести имя, да, там чи ввести там город, где он живёт.
26:40
Speaker A
Ну, то есть какую-то информацию в формате рядка, а користувач може написати там, наприклад, якісь цифри, і ви розумієте, що це некорректно. То есть таке значение вы не можете зберігати, ну, потому что там, ну, не должны быть цифры. И, соответственно, вы перевіряете
26:54
Speaker A
из альфа, не из альфа. То есть, якщо там тільки буквы, значить, окей, да? Иначе нет. Ну, далі из Lver і запер перевіряє, чи є рядок весь в нижнем регстре чи в верхнем регістре, то есть маленькими буквами чи большими буквами написаний.
27:12
Speaker A
Ну, теж, якщо перевірити щось, воно може бути корисним. Ну і також є дві таких функції із digit numeric в целом одні працюють однаково і тільки от у нас із digт він перевіряє якщо в рядке у нас все только цифри
27:32
Speaker A
тость цифри ну просто цифри азнамерик перевіряє чи є рядок числом ну то есть якісь якимось валідним числом, да, коректним. То есть, наприклад, там не 0, там один якийсь там, да, чи щось таке.
27:46
Speaker A
Но воно, кстаті, буде повертати тру тільки на цели числа. Якщо ви напишете дробное число, буде фолs отак. То есть воно перевіряє таким чином. [хекання] Перевірити наприклад на флот, то можна використати обробку винятків. То есть я потом вам покажу
28:07
Speaker A
всякі варіанти, то як можна зробити соответствующую перевірку. Ну і далі є такі функції starts with and wids. То есть тут ми перевіряємо, чи починається рядок з какого з какой-то подстрочки, либо заканчивается на какую-то подстрочку.
28:23
Speaker A
Ну, опять же, там перевірки там, чи починається, наприклад, якийсь там самий текст, да, на якесь там слово, наприклад чи ну щось таком там ви можете передати что-нибудь і таким чином знайти, наприклад, все рядки там, які починаються с определённого слова, ну
28:45
Speaker A
или заканчиваются якимось словом, то есть і ви можете таким чином зробити якусь валідацію, то есть перевірку потім, что воно там вот эти кусочки текста подходят под якісь там критерии.
28:58
Speaker A
[хекання] Это функції, які повертали true чифс, то есть просто якісь перевірки робили. Далі у нас є функції, які змінюють рядок. Ну, опять же, вони не змінюють його в прямому смислі. То есть вони повертають копію змінену, потому что рядок у нас
29:11
Speaker A
immutable і ми не можемо його змінювати фактически. Тому коли ми пишемо текl lver, наприклад, то есть ми хотим його в нижній регістр привести, то ми маємо зберегти результат куда-то, потому что сам по себе оцей текст, він який був,
29:26
Speaker A
такий і залишився. От можна подивитись, вот видите, то есть він став реалт маленькими літерами, а оригінал, який був, такий залишився, потому что рядок immutable, нельзя його мінять.
29:38
Speaker A
Тут я вже писав просто в принт, ну, чисто так, щоб вивести сразу же показать, як воно працює. Просто для примера.
29:45
Speaker A
Где у нас і uper використовується? L, то есть коли мы хотим, чтоб рядок весь был в нижнем регстре. Це корисно для порівнянь. То есть, наприклад, користувач вводит там якийсь свій usernрнейм там чи email, щось таке. Так, то есть якісь якесь
30:03
Speaker A
значення, в якому регістр, то есть там маленькая, большая буква, воно не має не має значення. І ви хотите перевірити з яким-то значенням, яке у вас збережено в базі даних. Ну, база даних потом вы, конечно, будете вчити себе позже. І щоб
30:18
Speaker A
коректно перевірити, ну, наприклад, користувач пишет, що там он Вася з маленької літери, а у вас в базі написано, що там Вася з великої літери.
30:26
Speaker A
Якщо ви просто будете порівнювати два рядка, ну, то есть у вас буде там написано якось так, да, от там користувач вл отак, да, а ви там з бази даних отримали ось так, соответственно, це буде що? Це буде fф, но по сути это имя правильное.
30:45
Speaker A
Ну просто користувач там ошибся и с маленькой буквою написал. Вот. И тому ми можемо привести оба в нижний регістр. То есть, ну, это в змінных має бути, конечно же, да? Ну, то есть функція ловера є. То есть вы і то, і то в нижній
30:58
Speaker A
регістр приводите, і якби ви можете вже это це коректно перевірити, що воно дійсно е-е там контент коректний. Якщо же вам важливо є регістр сохранять, ну, наприклад, пароль, да? Пароль ми не можемо перевіряти, приведя в ніжній регістр, тому що великі літери там мають
31:14
Speaker A
значення. То есть там вже не можна таке зробити. От. Ну, а - це більш для того, щоб якісь константи ее в форматі рядків створювати. Ну, то есть, наприклад, є там без даних якісь там е коди є є поняття референс дата, то есть
31:33
Speaker A
ссилочна інформація. Ну, наприклад, якісь типи інвойсов замовлень, там normal, там, не знаю, VIP якийсь інвой чи там якийсь там срочный інвойс і так далі. І ви можете зробити какби константу, то есть это, ну, код цього замовлення, да? І вот у вас там
31:52
Speaker A
написано, що це якийсь там, не знаю, VIP замовлення, так? Ну, тип його. І щоб в базі даних воно зберігалось нормалізованим таким, да, прийнято коди такі, да? То есть їх робити яким чином?
32:05
Speaker A
То есть, щоб воно було ось так написано. То есть так як буде ідентифікатор е оцього типу там інвойса. І от щоб руками ж не писати, да, или там как-то, то есть откуда-то вы там получаете ці значення з якогось там CSV файлика там
32:22
Speaker A
ещё, не знаю, где-то вам дали, и вы хотите це в базу даних закинуть, щоб це була референсдату, то есть ссилочна інформація, на яку ви будете ссилатись потім там в якихось своїх операціях. То есть там користувач зробив замовлення, ви кажете от там тип VIP, да, там тип
32:36
Speaker A
там normal там чи щось таке. І ви робите а всьо. То есть делегируєм функціям і у вас гарантовано буде якийсь формат вивода, показ там і так далі. Ее е так далі. У нас є функція title. А вона буде що
32:53
Speaker A
робити? Всі [сопіння] початкові символи е будуть великі. То есть от в бійці у нас є Hello World, то есть я спеціально писав Hello World о таким керявим чином, щоб у нас, ну, все тут не весь какк. Ну, щоб
33:08
Speaker A
показать, як воно працює. То есть що зробив? Е-е, вот в рядке є слова і кожне слово з великої літери, а все остальные буквы каждого слова будут маленькими. То есть tйтle можна зручно використати, наприклад, для чого?
33:30
Speaker A
Ну от як тут в мене є приклад такий. Це фамілія, імя, отчества користувача. Ось вас користувач вводит одним рядком там якийсь там, не знаю, Іван Іванович, да, щось таке. І він може написати маленькими літерами, може написати там в
33:45
Speaker A
разнобой, ну, то есть спеціально зробити так, що воно буде не очень красиво виглядати. І ви ж не будете так зберігати це в базу даних. Ну, наприклад, от ми пишемо, да, там, ну, от якось так там, да?
33:59
Speaker A
там, ну, якісь там с маленькой давайте напишем там Іванович, ну, то есть спеціально некоректно, так? А воно буде видавати завжди в такому форматі. То есть всі букви, то есть перші букви будуть великими, а всі інші будуть маленькими.
34:17
Speaker A
І ви вже в такому нормірованом варіанті, то есть коректном, будете це зберігати, наприклад, базу даних, бо є такий подход, коли в базі даних зберігають фулнейми.
34:28
Speaker A
Full name - це коли повністю все. Хотя з точки зору е, скажем, правил зберігання в базе даних краще декомпозировать, то есть чтоб отдельными значениями, то есть отдельное имя, отдельна фамилия, отдельно отчество сберегалось. Ну, это уже такое, потом буде это со временем розглядати. Так що
34:47
Speaker A
така дуже корисна функція. Ну, є функція Capitalizй. Вона що буде робити? То есть от у вас є якийсь рядок і вона буде брать першу літеру робити великою, а все остальные маленькими.
35:00
Speaker A
Все, все, да, то есть в пределах рядка. То есть это корисно, якщо у вас є речення якесь і ви хоті, щоб речення починалося з великої літери, а все остальные були маленькими. Но, естественно, це не можна використовувати універсально всегда по той причині, що у
35:16
Speaker A
вас в рядках можуть бути якісь там е назви з великої літери. Ну, там назва міста якогось, там ім'я чьо-то, і щоб воно не робило принудительно маленькими.
35:26
Speaker A
Тут, конечно, вже capitalла не получится використати. Ну, только то есть треба буде вже придумувати якісь комбінації з другими функціями.
35:35
Speaker A
Ну таке. Ой. Так, пока тут зрозуміло. Ну, то есть нормально по таким прикладам механізми ці.
35:46
Speaker A
Да. Да. Окей. Час. Давайте далі подивимося і потім перейдемо к написанню нашої гри. В ой не ігри. Ігра в нас потом будете грати. Це буде угадай слово. Не знаю, может быть сьогодні встигнемо написати чи потом. Спочатку генератор пароля буде
36:03
Speaker A
у нас. І там суть буде в тому, щоб ми разом думали, як що зробити. Ну то есть как такой я буду, конечно же, писать код, а вы будете мне рассказывать идеи, як це робити.
36:17
Speaker A
Так, ну і давайте ще такі функції подивимося. Ці функції я б не сказал, что супер прям не вот эти стрип это, да, а вот just, ну, не очень популярные.
36:27
Speaker A
Давайте вот цих вот ці функції у нас действительно популярные. Значит, є Lstep, Rст і просто. Ці функції що роблять? Видаляють пробели.
36:38
Speaker A
Наприклад, Lстп видаляє з лівої часті пробели. Right. R - это right з правої часті рядка. А цей просто видаляє там і там. Ну, только по краям, да? То есть внутри в рядке пробелы не удалить, только по краям. Всё, слева, справа.
36:54
Speaker A
Естественно, мы зачастую використовуємо вот вот вот эту функцию. Эти две редко. Ну, я даже сам не скажу, когда я последний раз их так сильно використовував. Ну, таких ситуаций обычно не возникает, чтоб так надо было.
37:06
Speaker A
Навіщо це треба? То есть користувач уводит опять же там, ну, или вы с текстового файлика откуда-то считали, с базы данных считали, а там некорректно что зберегалось.
37:16
Speaker A
Наприклад, вот такой вот рядок. Ну, не знаю, как-то так вышло, что вот вот вот такая ерунда сберегается. То есть зайви пробелы. Ну, не так много, может быть, там один-два. И якщо ви будете это ж символ, пробел, правильно, в конце, то
37:30
Speaker A
есть, и воно буде как бы некорректным. Ну, потому что зачем нам пробелы эти нужны? Они не являются чем-то важным. Поэтому ми их видаляємо.
37:39
Speaker A
Ну от, то есть для того, щоб коректно щось там порівняти, просто зберегти. Вот поэтому всегда пробелы слева и справа выдаляются. Это такой без практис, скажем.
37:52
Speaker A
От далі. Ну і є такі функції LJTER, Justic Center. [зітхання] Вони не дуже популярні, звичайно. Ну я по своїй работе говорю.
38:02
Speaker A
Может у кого-то там буде работа з всякими там якимись звітностями специфическими. Я только в звітностях це зустрічав. Ну от надобність використовувати таке.
38:15
Speaker A
Суть в тому, що вы хотите, ну, от у вас є, наприклад, формат [прочищення горла] там в вашем якомусь там файлике. Е-е, це може бути CSV. Вот мы в темі з файлами посмотрим, що таке CSV. Це кома Separate values, такой табличный варіант
38:32
Speaker A
зберігание. Ну или так где-то. То есть у вас є там звіт і по какому-то требованию там треба, щоб для форматирования определённо, то есть как визуально воно буде отображаться, там минимальная довжина рядка була там, не знаю, 20 символов. Ну, в моём случае
38:49
Speaker A
то написав, то есть потому что потом всё визуально там в текстовом файлике или где-то оно будет якось там по какому-то шаблону виглядати, наприклад. И у вас рядок фактически меньше 20 символов, то вот эти функции дозволяють с какой-то стороны, слева, справа чи равномерно і
39:08
Speaker A
там, і там додати пробели. То есть з допомогою пробелов ми таким чином отримаємо фінальную довжину рядка. То есть это можно просто для стандартизации где-то там в каком-то отчёте використовувати, а чи якщо вы хотите просто там красивенько как-то где-то вывести,
39:25
Speaker A
чтоб руками ці пробелы не писать, да, оно за вас всё сделало. Ну вот давайте подивимося. То есть у нас вот есть там вот такой рядок Hello World, да? И мы кажемо LJ just 20. То есть це мы означаємо по левому краю left. L - это
39:40
Speaker A
left. по левому краю хотим выровнять и сумарно, щоб було 20 символов. Ну то есть оно і такбо левому краю. Ну от дивіться, отут у нас пробелов немає в конце да?
39:51
Speaker A
От. А вотут, [зітхання] та що ж такое? Ну выделяйся. А ось тут, видите, у нас пробелы з'явились. То есть всего тут, кажется, 11 символов, насколько я помню, вместе с пробелом. И воно дев'ять вправо додало. Ну і якщо би
40:05
Speaker A
це у нас був текстовий файлик, да, мы бы там увидели, что оно там в левую часть как-то, наприклад, уехала, да, цей рядок в левой части файлика. R джастися, навпаки в правую сторону. Вот тут мы уже визуально видим.
40:20
Speaker A
То есть, видите, вот у нас був такий рядок, а тут він додав девять пробелов влево. Почему девять? Ну, потому что рядок 11 символов плюс 9 будет 20.
40:29
Speaker A
[сопіння] Поэтому так. Якщо же вы введёте рядок, який буде там 25 символов, 3040, неважно, то есть больше лимита, то просто ця функция, ну, ничего не сделает. Оно выведется, як как як має вывестись. То есть пробелы никуда, естественно, не добавятся, ничего не
40:45
Speaker A
удалится. Тому такий тут нюанс. І центр це ви що робите? Воно буде додавати сколько-то пробелов слева, сколько-то справа. И як бы вот так центрировать відносно початка рядка. То есть относительно левой части.
41:01
Speaker A
там, файла или ещё чего-то. Вот. Ну, это так для форматирования там текста где-то может пригодиться.
41:11
Speaker A
Ну і далі є у нас такі пошукові вже функції, які, ну, довольно часто ми можемо зустріти на практике. То есть у нас є вот текст, да, там Hello World. І мы хотим найти в цьом тексті, где у нас по якому індексу є
41:26
Speaker A
hello, то есть де воно зустрічається. Ми бачимо, що у нас по індексу нуль зустрічається. Ну, зразу же на початку, да, можемо пошукати літери L. Тут він нам двійку повернув, то есть 0 1 2. Отця, то есть індекс 2. То есть он говорить
41:42
Speaker A
найдимні первої попавшоїся L, якщо вона є. А Rфine - це ми кажемо справа налево.
41:48
Speaker A
То есть він шукає з правої сторони, да, влево. Він знайде оцю R. Ну, то есть, если у нас 11 символов, значит, тут у нас буде вроде 11. Ну да, тут у нас буде, соответственно, десятый індекс. И и тут у нас, да, вот это L будет девятый
42:05
Speaker A
індекс. Всё правильно. Якщо же ви хочете, наприклад, знайти оцю L, а, ну, так не знаєте нік, да, то есть ви можете зробити, сказати, що поч почни шукати, починаючи з якогось індекса. То есть мы находим індекс первый L. То есть
42:20
Speaker A
у вас задача найти індекс второй. букви Л, наприклад. І ви спочатку находите індекс первої букви L і далі кажете find. Ну, то есть що искать? І починаючи з якого індекса, то есть з індекса найденої літери L п. Ну, то есть починає
42:38
Speaker A
со следующей, короче, шукати. І він буде шукати, знайде вам вже оцю L. Ну или там, если б вона не тут була, а где-то дальше, то её бивел. Якщо же ви будете шукати якийсь символ, якого не існує в рядке, ви будете отримувати -1. То есть
42:50
Speaker A
у нас -1 е такой індекс існує вообще, да? То есть ми знаємо, що ми можемо по від'ємному індексу звернутись і отримати якби з конца значення останнє. Но в пошукових функціях, які шукають е-е індекс якогось значення, так прийнято, що якщо індекс не
43:09
Speaker A
знайдено, воно повертає -1. Поэтому просто, якщо ви шукаєте індекс, бачите -1, це означає, що, ну, просто нічого не нашёл.
43:18
Speaker A
Вот. Так що така функція. Ну і тут пару таких прикладів, то есть що робити, якщо ви хотите вивести індекси всех літер L? Ну там зберегти можна як в список потім или там просто що-то зробити. І о здесь таких два варіанта.
43:35
Speaker A
То есть ми що робимо? Перебираем, провіряємо. Якщо по індексу I у нас є L, ми виводим цей I індекс.
43:44
Speaker A
Оце перший варіант. Другий варіант, що робить? То есть він перевіряє. Ми створюємо змінну індекс.
43:50
Speaker A
окремо. Так, перебираємо просто по значенням. Якщо співпадає, ми виводимо цей індекс і потім його збільшуємо. Ну, то есть это одно і то же двома способами.
44:01
Speaker A
Ну, і на ваш взгляд, оттут який варіант тут більш такий, ну, гарний под цю ситуацію? Как вы думаете, перший чи другий?
44:10
Speaker A
Как будто бы второй. Ну, более понятно, второй. Ну, в целом, да, но какби перший варіант він більш он, по-перше, і коротше. Ну, то есть потому що перше він працює з індексами. То есть наша задача що анализировать індекси, правильно? То
44:29
Speaker A
есть ми ж мы ж хотим найти індекси значень, да, каких-то. І тут от цей варіант перше більш на самом деле подходит сюда, потому что він как бы изначально працює з індексами на рівні індексов. А другий варіант він тут ми
44:44
Speaker A
вводим додаткову зміну. Да, без этой изменно мы не сможем. То есть тут как бы теж окей, но оно немножко как бы такое, да, то есть зайвозмінно у нас получается.
44:59
Speaker A
Так что, да, ну і то, і то корректно, естественно. От такі функції. Так, это для пошука якихось там рядків.
45:10
Speaker A
Далі у нас є replace. Replace - это для замены. Опять же, все вот эти зміни рядків, на самом деле рядок, ещё раз повторяю, не змінюється, а ми просто с вами отримуємо новий рядок. То есть мы говорим, вот у нас є такий рядок Hello
45:24
Speaker A
World, hello. І ми хотим що зробити? Заменить Hello на goodbyй, да? Так, не совсем позитивно, но неважно. Давайте запустим. І він що буде, як буде працювати? То есть ми кажемо: "Заміни Hello на goodby". Old new він іде везде
45:40
Speaker A
вот hello hello заменяет на goodby мы можем ввести наприклад, то есть мы говорим замени тільки одно вхождение, то есть countт сколько штук, да? Или, наприклад, одну штуку только і вот мы побачимо goodbyй, то есть перший hello замінил, а цей уже не то не меняет. Уже
45:58
Speaker A
более позитивний рядок получился. То есть отак працює функція replace заміна. Ну і повертає новий рядок, соответственно, не змінюючи оригінал.
46:10
Speaker A
Так. І далі функція split joint. Тоже на попередньому уроці я сказал, що мы посмотрим.
46:16
Speaker A
Вот давайте посмотрим. То есть тут у нас комбинация списков и рядків. То есть тут и то, и то нам надо. Зачем? Зачем это необходимо? То есть у вас есть какой-то рядок, и вы хотите по якомусь сепаратору, то есть разделителю,
46:30
Speaker A
разделить его на подстрочки. То есть, наприклад, задача тут таке, то есть суть цього приклада в тому, що у нас є рядок.
46:40
Speaker A
Знаєте, це якби набор речень. Вони всі починаються з маленької літери. Ну, ми знаємо, що речення з великої починається, так? І ми хотім зробити так, щоб вони починали з великої літери ці речення. І от хотим це зробити з допомогою от этих функцій Split та
46:56
Speaker A
joint. Естественно, цю задачу можна зробити попроще, само собою. Ну, пока давайте подивимося і на такий варіант, щоб роздивитись, як працюють ці функції.
47:08
Speaker A
А так в целом split join. Ну, от split, да, щоб поделить, воно використовується. Вы можете в формате рядка какого-то там большого хранить, наприклад, список, то есть не список делать лист, да, а просто рядок, а через кому, как разделитель,
47:22
Speaker A
да, вы будете зберігати там якісь значення ну какие-то там, не знаю, имена там или константы, ну, что-нибудь. Вот. И потім вы можете це превратить в список, то есть раскидать из строчки, да, это всё конвертировать в список. То есть мы
47:41
Speaker A
говорим, який у нас буде сепаратор, то есть разделитель. И вот вы видите, се є, да, він і Maxpliit. Ну, Maxpliit - это сколько теж можно указать лимит, что вы хотите, наприклад, там разделить тільки там сколько-то определённое количество раз.
48:00
Speaker A
Прямо как с реплейсом, да, такая же идея. И [зітхання] sentences, то есть, что мы тут отримуємо. Видите, у нас есть список рядків. То есть мы говорим на тебе крапка с пробелом - це принцип, по якому надо дробить рядок, который выше.
48:15
Speaker A
И вот отримуємо, видите, без естественно цього разделителя. От hello, hello world, goodby world, hello world. Да, тут крапка. Почему тут крапка? Тому що разделитель-то у нас крапка з пробелом, правильно? Тут нету пробела, поэтому він тут крапку нам залишить. Ну, хай буде
48:32
Speaker A
нам нормально. То есть ми отримали список рядків. Вот что сплит делает. То есть мы говорим принцип, по якому е- надо разбить рядок на маленькие рядки, да?
48:45
Speaker A
И потом что мы робимо? То есть мы створюємо пустой список, наприклад. Понятно, это можно всё более коротко записать. Я сейчас просто це так детально расписал, чтоб точно все поняли. И мы проходимся циклом по вот этому списку рядків. И к каждому
49:00
Speaker A
элементу это как бы окреме речення, да, мы так считаем нашим нашей задачке, мы применяем функцію capitalта. То есть говорим result, то есть сюда додати sent. Можна, конечно, було б без створення цього списка просто звертатись к текущому списку по індексу і робити
49:16
Speaker A
замену. Да, ну это я спеціально уже так зробив, чтоб вы, если что, могли сравнить, посмотреть и так далі.
49:25
Speaker A
Capitalizй буде що робити? Перший символ буде великим. То есть буква великою, все остальные маленькими.
49:32
Speaker A
Это не универсальный подход. То есть это не всегда буде корректно. Как я казав, если у вас там в рядке є, наприклад, что-то имя в середине, то [сопіння] такий вариант не подойдёт. Надо будет уже іншу інший алгоритм писать.
49:44
Speaker A
Далі тут у нас що ми робимо? Вот ми побачили, видите, всё з великої літери почалось. Ну і далі нам треба це обратно конвертировать в рядок. І отут у нас є функція join. Мы берём разделитель якийсь. То есть вся така безворотня дія
49:58
Speaker A
досплита. То есть мы берём разделитель, який буде у нас добавляться между каждым значенням із списка. А списки мають бути рядкі. Это важно, да? То есть ми передаємо ризал, в котором у нас, как вы можете побачити, є рядки. И мы говорим
50:15
Speaker A
между каждым рядком, да, там перший, другий, додай оце этот разделитель, то есть крапку с пробелом.
50:25
Speaker A
Ну и всё. Видите, он склеил это всё, все вот эти элементы списка в один рядок и между каждым значением додав крапку с пробелом. И вот мы по сути с вами решили нашу вот эту задачу, да? То есть теперь
50:40
Speaker A
наше речення з великої літери з допомогою таких функцій. Так, ну тут механіка зрозуміла, як воно працює, да? Да.
50:50
Speaker A
Хорошо. Так що у нас там далі? Ну, в целом по рядкам это вроде бы всё. Тут матрицы это потом, это двумерные списки. Якщо встигнемо, то сегодня это про это поговорим час. І там в мене є вже приклади.
51:08
Speaker A
Е-е, так вот генератор генератор пароля и дальше обсуждение домашек у нас ид подсказки к домашкам всякие.
51:20
Speaker A
Ты не помнишь, что это вообще? А, как я понял, зачастую используется for, нежели while? Да.
51:27
Speaker A
Да. Ну, как сказать. Ну, for - это для коллекции. То есть, если у вас коллекция, это значит for надо использовать. Или вы просто хотите что-то повторить, то это тоже for. Ну да, обычно for, но - это если у вас есть
51:40
Speaker A
условия, то есть пока оно возвращает true, повторяй. False не повторяй. То есть именно с условием, если у вас. И также бесконечные циклы мы делаем whileм. Технически можно сделать фор тоже бесконечным, но это будет костыльное решение. То есть это
51:57
Speaker A
бесконечные циклы фором никто не делает. Хотя можно такое сделать, но это будет дурость конечно.
52:06
Speaker A
Так, о'кей. Ну далее давайте мы посудим домашку и підемо писать наш этот генератор пароля. Ну тут у нас, конечно, уже он написан, но мы давайте вместе его будем писать. Вы сильно сюда не подсматриваете потом, чтоб интересно было. Так, у нас домашка такая:
52:27
Speaker A
змінное. Значит, користувач вводить рядок, перевірити, чи може цей рядок бути іменем змінної. Ну, то есть мы знаем правила именно змінных. Тут тут це все написано. И по сути вы у вас є как бы как кандидаты для рядки, которые е кандидатами для
52:46
Speaker A
названия змінної. ну, там потенціальний. І ви маєте перевірити, чи можна цей рядок використати як назву для змінної сам по собі, да, потом. То есть у вас тут є тесткейси, то есть такі, то есть от назва змінної как бы, да, і що має
53:01
Speaker A
повернути true. Ну, то есть, що это нормальная назва змінної. Ну, технически, да, но я казав, що це ми використовуємо в специфических ситуациях. А так, якщо вы хотите просто зміну створити, никто так не пишет, конечно же. Да, я объяснял, почему. Что
53:14
Speaker A
это нечтабельно. Це false. Це теж false. То есть так нельзя. Тут как бы окей. Ну, з точки зору синтакси всё нормально. Так можно с пробелом нельзя. Всякие ключевые слова також нельзя. Там с цифро нельзя так можно. Ну от всякий тескейс. То есть ва
53:36
Speaker A
ты пропадаєш. Ваша задача спіноти назад пропал. Что со связью с интернетом? А, да, я вижу мне что интернет конек.
53:51
Speaker A
Так, сейчас слышно, всё окей. Да, уже нормально. Не опять Ну, давайте ще раз тогда розповім, да?
54:09
Speaker A
То есть тут получается є по суті якби как вот эти тесткейси, це назва зміни і що повернути. То есть він перевіряє, що там, наприклад, ця назва окей чи не окей. Так, все равно пропада.
54:39
Speaker A
Не слышно. Сейчас, секунду. Так, а зараз чутночу. Да, хорошо. Что-то окей. Так, вроде сейчас всё, всё видно, всё нормально.
55:18
Speaker A
Дада. Да. Хорошо. От так. Що тут у вас є якби такі назви змінних, да, які потенціальної назви змінних і що ваш алгоритм має повернути? Ну, то есть він каже, що це там false, це false, тут там true і так
55:32
Speaker A
далі. В мене є, що нічого, нічого надо говори там. А, окей. Думал опять пропал. [сміх] Так, ладно. Надеюсь, что меня слышно.
55:46
Speaker A
А-а, так. Ну, от отут є така невеличка подсказка. Час. Де вона в меня є?
55:55
Speaker A
Ну, от, е, ну, це просто як така міні-міні подсказка зовсім для цієї домашки. То есть ви що робите? Ви створюєте список рядків. Ну, то есть ви берёте ці рядки вот отсюда.
56:10
Speaker A
Це якби потенціальної назви змінных. І потім, щоб будете циклами їх перевіряти. Ну, щоб руками не писать. каждий раз, да, різні по черзі там.
56:20
Speaker A
І у нас є така, видите, keyword би бібліотека. Вона буде там буде список всех ключових слов, які є, ну, ще всіх всесх, да, які існують у нас. І ви перевіряєте, наприклад, сразу же, що якщо чи є ця назва зміною, там нижнє
56:35
Speaker A
подчркивание, воно є в списке ключових слов. Якщо так, то кажете все, это у нас не може бути назви змінної і ми робимо continue. То есть ми пропускаємо подальші всі перевірки.
56:47
Speaker A
Ну і так далі, да? То есть надо всякі перевірки там далі писати. То есть, наприклад, імпорт це є ключовим словом.
56:52
Speaker A
І от якраз воно тут має спрацювати. Ну, то есть от видите, что у нас тут, конечно, неправильно він пише, що это корект. Это понятно, что вот эти назвы некоректные, но я просто не писав ніяких перевірок для них. А вот тут, видите,
57:04
Speaker A
він кажеing да потому что импорт - це ключове слово. Ну и вот так там надо вот эти всякіе проверки написати.
57:13
Speaker A
Так, с этой домашки зрозуміло. Ну вот у меня вот был вопрос вот по ней.
57:18
Speaker A
Нам просто то, что в списке сделать на неё переменную и вот так вот кинуть на тест её через этот импорт [прочищення горла] или как? Я я просто не понял, что нам именно нужно, ну, проверить.
57:33
Speaker A
Ну, список. А, ну, ну, смотрите, то есть вы берёте вот ещё раз, у вас есть вот здесь это как бы название переменной и что должна вернуть ваша ваш алгоритм.
57:43
Speaker A
Ну, ну, чтобы руками, вы же не будете каждый раз для тестирования это вводить. Вы берёте все эти значения, вот копируете просто в список большой. Ну, чтоб чтоб оно прогоняло сразу же по всем вот этим переменным, потенциальным названиям переменных, да, прогоняла и
57:58
Speaker A
проверяла. То есть окей, не окей. Вот. И вы их пишете просто, чтобы проверять потом. Ну и дальше получается цикл, что будет вам, например, сначала отдавать вот это значение. Вы проверяете, это можно использовать как переменную или нет.
58:13
Speaker A
Ну, тут надо всякие проверки написать. А если оно некорректное, но пишет, что корректное, написать if not или как?
58:20
Speaker A
[прочищення горла] Не, ну просто какой-то else написать там, что оно некорректное. Ну то есть то есть вы делаете проверки, например, ну то есть сначала надо отсечь, ну то есть такие очевидно неправильные варианты. Ну то есть, например, если это
58:34
Speaker A
ключевое слово, да, всё. Ну, у меня есть вариант решения, конечно же, потому что мы это всё уже с другими группами по 100 раз решали. Ну вот примерно вот список. Вот так вы должны это всё закинуть, да, потен потенциальные там названия. Ну и там
58:50
Speaker A
проверяйте, что там длина строчки, ключевое слово, не ключевое, там есть ли несколько нижних подчёркиваний там. Ну вот в таком формате, да. Вот вы можете код сейчас увидеть. Ну опять это не надо точ писать, просто как идея, да?
59:04
Speaker A
[сопіння] Ну, если не разберётесь вместе, в следующий раз это обсудим более детально, но идея такая, да, то есть написать проверки под каждое значение, то есть может ли оно быть использовано как название перемены.
59:16
Speaker A
Ага, всё, я понял. Спасибо большое. Да, окей. Ну, таке цікава така домажка, тому так. Ну, і давайте, що там наступна домажка? Модифікувати калькулятор.
59:28
Speaker A
Это ж вот это, да? 52. Значить, таким чином, щоб він А, ну это цикл надо додати.
59:35
Speaker A
Ну тут через while мы ми можем, да, сделать. Да, да, да. Это чистейший вайл, да. Вот.
59:39
Speaker A
То есть он идёт пока не это, то дальше. Да, дада. Абсолютно верно. Тут тут фор вообще не пойдёт. Можно фором сделать, но это будет не форт не пойдёт, потому что мы ж не знаем, сколько он хочет считать, да? То есть там сколько он этих
59:53
Speaker A
вычислений. Тут тут чистейший случай для вайла, да? Бесконечный цикл надо использовать. Ну или цикл там написать, что пока не там while там user input не равен там чему-то. То есть можно какое-то условие такое ещё сделать без такого прям совсем бесконечного сети.
60:11
Speaker A
Наконец-то домашка интересная. Уже можно знания какие-то применять. Ну да, дада, да. Ну я Да, тут, видите, домашки эти редактировать не могу, поэтому тут я бы ещё что-нибудь там, может быть, подобавлял. Ну пока и так хватит вам этого. Значит, что у нас тут?
60:26
Speaker A
Хштег ну теж така цікава домашка. Значить, в чом тут суть? У вас є рядок і треба і цей рядок превратить в хештег.
60:37
Speaker A
То есть надо склеить слова і добавить хштег значок. Ну тут у нас що може бути?
60:44
Speaker A
Наприклад, от I, видите, з маленької літери, то есть это capitaliz title, да, там, ну, вот эти вот функции можно использовать. I like Python Community, восклицательный знак набор. То есть треба позбавитись всех знаков припинания. То есть комас там крапка там
61:02
Speaker A
і всё остальное. Всякіе символи їх можна отримати і string punctuation. Що це таке, я покажу на прикладі з генератором пароля, який ми будемо писати.
61:15
Speaker A
То есть это по суті константа з бібліотеки, в якій зберігаются всі символи - плюти там комы, восклицательные знаки и прочее.
61:25
Speaker A
Ну и лимит 140 символов має бути. Как лимит, как лимитировать, срезом зробити, да? То есть просто зробити срез. Конечно же, для тестирования вы можете зробити так, что у вас буде там спочатку потестируете, зробить лимит там на 10 символов, а потом уже
61:39
Speaker A
поменяйте на 140. То есть не обязательно прям тестировать на таких длинных рядках. Как позбавитись от этих символов? Ну просто перевірити, що якщо цей символ є там в рядке циклом пока що єсть, конечно більш гарний варіант, як це зробити за допомогою регулярних
61:55
Speaker A
виразів. Но регулярные вырази мы ще навчили. Это потом будет позже, поэтому пока без них. Ну, если кто-то из вас знает регулярные выразы, можете их как второй вариант, да, використати. Ну, как несколько вариантов решения.
62:14
Speaker A
Вот такая домашка. Так, тут якісь є питання? Пока нету. Как начнём делать, так будет.
62:23
Speaker A
Ну, это да. Ну, нормально. Окей. Так, с домашкой обсудили. Що у вас по конспекту тут? Що таке рядок? Рядки мають часткову функціональність списков.
62:35
Speaker A
Ну тут да, то що я розповідав. Формування метод формат. Вот это сейчас надо ещё посмотреть. Форматы и F рядки.
62:41
Speaker A
F рядки мы уже смотрели. Ну не совсем полностью. Сейчас якраз подивимося. І от ASK Unicod це якраз оте, що я вам розповідав да?
62:55
Speaker A
То есть то, что у нас вот видите конвертация сім в бинарный або 16тковый 16тирічний, короче говоря, цей формат, да, ну это система исчисления мається на увазі.
63:08
Speaker A
Почитайте це, це корисно буде для вас в любом случае. Ну ми [сопіння] ще з тим будемо, як я казав, стикатись в теме с этими файликами там, потому що це буде более наглядно. Так. Ну і от у нас є оці функція формат. Сейчас в мене там
63:24
Speaker A
є теж приклади. Ну давайте по этим пока пройдёмся. Так, формат, формат. Ладно, это я вам отдельно покажу. F рядки. Давайте от с этого. F рядки - це коли ми пишем с вами внутрь рядка в фігурних дужках якісь змінні. Да, надіюся пам'ятаєте, я таке
63:41
Speaker A
вам показував. Ну і ви вже використовували да? Отлично. Вот так. Там хто-то А, да, вот вже було.
63:49
Speaker A
І тут що такого цікавого є? Це, наприклад [сопіння] а те, що можна указывать якісь виті отакі форматирования, да? То есть вы можете написати там, е, якесь число, да, там дкрапкаб це буде число і він буде в там в двоїчную систему числения
64:08
Speaker A
переводить там это таке. Ну і далі, наприклад, ви можете написати, от видите двокрапка, то есть как формат такой окремий пишете. Дкрапка там крапка 4F. 4F це означає, що має бути чотири флот, то есть чотири цифри для флота. Ну
64:29
Speaker A
то есть в залочке чотири цифры. Вот. И мы, получается, говорим, что спи, то есть число Пи - это 3,14. Ну, там понятно, большое число, мы там много-много всяких цифр. Мы из константы це вытаскиваем и хотим, чтоб у нас точность была чотири цифры після
64:48
Speaker A
крапки. То есть вы можете отак это форматировать. Ну такие там ще є, там є ста digit и так далі.
64:59
Speaker A
Ну, в мене там є ще приклади. Сейчас покажу, где у меня эти приклады. Тут, кстати, є подсказка к домашке.
65:07
Speaker A
к домашке с хештегом десь вона є, кажется, или нет? Ну, наверное, нет. То, значит, на следующем уроке вже.
65:16
Speaker A
Так, а где же формат наш? А вот этот F рядок, это получается как небольшая функция, правильно?
65:23
Speaker A
Ну да, это функция формат, да. Вот это просто это более сокращённый вариант записи, да. Так, а где ж где ж у меня эти самые, чтоб понять не могу, где я их написал?
65:35
Speaker A
Тут что ли? Сейчас, [сопіння] секундочку. Конспекти, конспекти. А, ну окей. Десь воно є. Точно. Ну, якщо немає, сечас руками напишу. Не страшно ці приклади. Десь десь воно є. Я сейчас просто что-то не вижу, тому що в мене тут е всякі самые
66:01
Speaker A
приклады-приклады. Е-е, да. А вот оно есть. Вот нашёл. F рядки. Вот так бы конечно это руками пришлось писать.
66:14
Speaker A
Окей. Що що це у нас? Спочатку давайте подивимося просто функцію формат, да? То есть в таком полном варіанті. У нас можна як зробити? То есть у нас є рядок.
66:25
Speaker A
В этом рядке вы пишете фигурные дужки. Ну просто сами посейте. Фигурные дужки - это просто символы, они нічого не значат. Естественно, с ними я починаю працювати.
66:35
Speaker A
тільки вже коли ви функцію формат приміняєте, то есть вона починає шукати ці фігурної дужки. І ви що кажете?
66:44
Speaker A
Давайте мы запустим, будем смотреть, як воно працює. То есть просто це, да, це просто рядок. Ну, бессмысленный для нас с этими фигурными дужками рядок. Ну, это так. Дальше мы формату говорим на тебе, то есть говорим текст наш, да, формат
66:59
Speaker A
cats docs, то есть передаємо змінні якісь, ну, или може числа напрямую передати значе. Неважно, що ви туда передадите. То есть мають бути якісь значення. То есть не обов'язково це цифри такое. І от ми бачимо, що кец у нас три кота і п'ять собак, да? То есть
67:13
Speaker A
воно замість вот этих фігурных дужок подставило значення змінных. [прочищення горла] Тут ви бачите таку штуку. Це зірочка ARКS Argumence. Що це таке? Это ми будемо пізніше вчити в темі з функціями.
67:29
Speaker A
Ну, якщо коротко, то це означає, що ви можете передавати скільки завгодно аргументов. То есть это вот как у нас є в принте вот этот ARКС, да, и оно будет в картеше записывать.
67:40
Speaker A
Картеше мы на наступном уроці, кажется, вывчимо константный список. Ну, список, который нельзя там ничего поменять, да?
67:47
Speaker A
То есть в целом не сложно запомнить уже даже. [сопіння] Так що і, ну, тут важливо, що кількість змінных совпадала з кількістю фігурных дужок. От. Ну, оно заменяет. Так, якщо же вам надо как-то очерёдность налаштувати, потому что так-то оно будет
68:02
Speaker A
как писать. Ну, то есть значник в первое, докс во второе. Вы можете тут я прямо к рядку применял, можно к змінной в который рядок или напрямую к рядку.
68:10
Speaker A
Ну, неважно, да? То есть это в залежності від обставин, як вам там хочется зробити.
68:15
Speaker A
Мы говорим, что вот cats docs, но так як це якби список под капотом, да, такий константний, то тут є індекси, то есть індекс ноль, індекс один. І ви кажете, що сюда я хочу значення по індексу один.
68:27
Speaker A
То есть сюда в нас буде значення количество собак на самом деле, а тут буде кількість котов. То есть ми бачимо cats 5, doc 3. То есть вы можете сами указывать. Хотите, вы можете написати вообще вот я хочу и тут, и тут, то есть
68:38
Speaker A
в нескольких местах указать, да, там буде и там, и там по пять штук. То есть комбинируйте, как хотите, да? То есть и в каких ситуациях именно вот такой формат будет удобен и применим. То есть у вас є якийсь рядок, наприклад,
68:53
Speaker A
а-а, один, да, как шаблон какой-то. Ой, как шаблон. І ви цей рядок використовуєте з різними змінними. То есть, если ви використовуєте, наприклад, F рядок, то ви напрямую пишете якісь змінні. Ну і виходить, что если вы хотите другі якісь змінні передати, то
69:11
Speaker A
вам надо новий рядок такий створювати. А коли вы пишете с форматом, ви один раз это налаштували, ну, у вас есть там, наприклад, якийсь темплей для лога, ну, какой-то записи в журнал того, что с приложением происходит в пределах какогось там, не знаю, файлика. І ви
69:27
Speaker A
можете потім подставлять туда значення якісь там, то есть у вас буде шаблон для там ошибки, шаблон для ч-то успешного там і так далі. Ну, к примеру, то есть може бути много всяких ситуаций. Може бути це вообще шаблон какого-то имейла,
69:42
Speaker A
да, и вы как динамические значения какие-то проставлять будете. Ну и вы можете применять, получается, к одному рядку різные вот эти динамические значения. Коли мы пишемо F рядок, то, что мы вже смотрели, ну, тут ми, да, напряму ось так пишемо.
69:57
Speaker A
Тут по разным обстоятельствам разное використовуємо. Вот так. Що таке? Это я не знаю, зачем я написал.
70:10
Speaker A
Кто-то меня, наверное, просил написать. Да, но оно не надо. Сейчас. Так, тут зрозуміло. Да да хорошо.
70:23
Speaker A
У меня есть вопрос. Может, я тебя прослушал. Сорри снова. Вот там, где по индексу, там, где вот вы говорили, что индекс онял, что это индексы? Вот я я вот вот это вот. Ну, потому что под капотом это картеж.
70:38
Speaker A
Кортеж - это константный список. Ну, давайте сейчас быстро просто покажу, чтоб это немножко как бы наперёд, но но не страшно, мы всё равно это выучим скоро. То есть у вас есть, ну, например, вот вы можете написать там нам какой-то,
70:49
Speaker A
да там вот, не знаю, какие-то значения, да, вот так через запятую. пишете там print, пишете type, ну, чтобы посмотреть, что ж там за тип данных.
71:03
Speaker A
Это будет, это будет картеж. Вот. То есть на самом деле, когда вы пишете, это будет кортеж. Ну, и мы можем по индексу обращаться. Это константный список. То есть это список, значение которого мы не можем менять. То есть можем только читать, а менять не можем.
71:16
Speaker A
То есть, если я попытаюсь что-то поменять, будет ошибка. Он скажет, что нельзя такое делать.
71:21
Speaker A
Видите? Ну и по сути, когда вы пишете вот так, где там это было, это это кортеж под капотом создаётся. Но вообще, когда мы кортежи создаём именно отдельно, да, то принято писать в круглых скобках, чтобы не было проблем в восприятии. То есть вы
71:37
Speaker A
видите в круглых скобках, да, и вы понимаете, что, да, это кортеж, потому что через запятую можно ошибиться.
71:44
Speaker A
Ну просто как, да, и ошибиться можно. Почему? Потому что вы можете вот так написать, это будет кортеж. То есть, ну, значение запятой, это будет картеж из одного значения, но это будет как, ну, то есть это как ошибка какая-то, баг
71:57
Speaker A
какой-то, да? То есть, а если вы так пишете, то чётко понятно, что это картеж. Ну, плюс. Спасибо.
72:05
Speaker A
Окей, хорошо. Так, тут ми це подивились. Ми закроємо пока. Значить, далі, що у нас буде? Це ми подивимося з вами, да, напишемо генератор пароля разом.
72:19
Speaker A
Можливо, ще якісь є питання попереднім заняттям, там по домашкам сразу, щоб ми проговорили. Скажіть, будь ласка, ну, щоб я понимал, там, может, какой-то приклад надо там показать.
72:32
Speaker A
А оно всё, в принципе, понятно. Угу. Мне мне, допустим, тяжело сугубо вот понять условия всегда. Ну, я не знаю, почему оно так получается. Допустим, синтаксис написать. Это всё, я это всё понимаю, но вот я, когда читаю условия задачи, это всё,
72:50
Speaker A
ну да, это в реальности надо идти к бизнес-аналитику. Бизнес-аналитик будет вам объяснять, что там надо сделать.
72:57
Speaker A
Допустим, я прохожу ещё сейчас параллельно SQL. Угу. И он, ну, как-то проще чуть база данных заходит. То есть я понимаю конкретно, что мне нужно сделать.
73:09
Speaker A
Ну, базы данных там, ну, что там, там запросы select, insert, update, delete, по сути. Ну, там, ну, как, если вы будете, ну, я не знаю, вы к индексам дошли, там хранимым процедурам, функциям.
73:21
Speaker A
Нет, к функциям у меня третий урок только там insert сейчас прошли, join прошли такое.
73:27
Speaker A
Угу. Ну там дальше тоже, ну как там нету алгоритмов, потому что SQL там transзакт SQL, если ты SQL, например, да, это не язык программирования, это скриптовый язык. Ну там не пишете, поэтому там как бы это нельзя сравнивать с таким, но он, кстати, похож на Python
73:44
Speaker A
где-то. Вот когда вы будете изучать эти самые, как они называются, хранимые процедуры, store procedures, всякое такое, вот там, ну, там есть обработка исключений, там есть там есть условия цикл while можно сделать, ну, всякое такое.
74:03
Speaker A
У меня где-то там с прошлых групп, где там этот SQL, вот там проходили отдельно всякие какие-то функции.
74:13
Speaker A
А вот видите, то есть там змінні умови, цикли, ну да, всякое такое. [сопіння] Так, окей, хорошо. Давайте тоді зараз на перерву, вот, а потом вже продовжимо.
84:43
Speaker A
Так, йдемо далі. Е, зараз видно екран, все окей, чи як воно? Да. Да, все хорошо.
84:55
Speaker A
А, все хорошо. Окей. Так, ну давайте напишемо напишемо з вами генератор пароля. Ну, будемо з нуля писати, да, там якась версія у нас вийде, а потім там той приклад, який вже є. Ну, то есть написаний генератор паролі, там, скажемо
85:14
Speaker A
так, почтішу повністю. Е-е, теж його подивитесь. Значить, у нас з чого нам треба почати? То есть нам треба е отримати якісь ісходні дані. з яких ми будемо генерувати потім наш пароль. Да, давайте мы импортируем библиотеку и також импортируем
85:43
Speaker A
рендом. Ну, можно было через кому их, конечно, там заімпортировать. Так. І що нам треба буде з нашого вот этого string. То есть ми напишемо, наприклад, initial password data.
86:11
Speaker A
І ми напишемо string asket плюс string digits п string punctuation. константу зробили, да, щоб в ній у нас будуть такі значення. І от ми можемо побачити, що у нас askators - це все маленькие буквы, большие.
86:30
Speaker A
Digits - это все цифры. Ну, цифры у нас 10 штук от нуля до девяти.
86:37
Speaker A
І punctuation - це все символи, які є вообще. Ну, то есть ми можемо, ну, на клавіатурі, да, ми можем, конечно, зробити так, що в нас, е-е, деякі символи, які складно запам'ятати, можна їх убрать. Ну, наприклад, оцей символ, вот эта такая косая кавычка
86:56
Speaker A
одинарная. Ну, щось таке можна по по прибирати. Ну, это потом зробимо. Ось такі дані ми будемо використовувати.
87:05
Speaker A
Ну, і можна що зробити? Ми можемо що зробити? Наприклад, можна взять оце все, що в нас є, да? Це буде один больший рядок.
87:15
Speaker A
І ми напишемо, давайте рендом сразу же. Рендом у нас будет, как это будет называться? Shuffл.
87:28
Speaker A
Ось. Но шафлу не Давайте не так сделаем. Давайте, наверное, ну, шафл, що на буде робити, він буде нам е-е перемешивать це все надо. Ну, давайте сейчас я окремо це напишу. Правда, константу змінювати, это не очень интересная будет затея. Ну,
87:48
Speaker A
пока просто для теста ми це зробимо. Давайте ми так напишемо. То есть в нас буде random нет random shffle.
88:01
Speaker A
Ось так. От, дивіться. Ну і тут ми якраз отримуємо помилку, яку то есть strr object does not support item assignment.
88:10
Speaker A
То есть чому так? Тому що у нас рядок, то есть функція shffle, що вона робить? То есть вона бере колекцію якусь і значення внутри этой колекції починає перемешувать в рандомной якоїсь послідовності.
88:27
Speaker A
Коли ми кретку і змінює, то есть змінює оригінал. Коли ми використовуємо рядок, рядок у нас mutable. І от отримуємо таку помилку. Тому ми з вамі будемо цей шафел робити вже, коли пароль буде згенерований. То есть ми його згенеруємо
88:44
Speaker A
і після цього перемішаємо додатково. Поэтому от вите такий у нас тут є нюанс. А, ну і далі давайте ми що зробимо? Ну, у нас буде, наприклад, якась там константа кстати правильна.
89:01
Speaker A
створювати в окремому файлі. Ну, пока ми не вчили, як працювати з модулями, то есть окремими файликами. Пока у нас все буде прямо в одном. То есть у нас буде, наприклад, min password, та не, а, давайте буде вісім.
89:20
Speaker A
Max password l буде 16. То есть зачем ми це робимо? для того, щоб потім, коли в нас будуть якісь оновлення, там скажеш, що мінімальная довжина теперь у нас там 10, чтоб мы в кодеі не меняли, то есть не робили якісь magic numbers, а змінні
89:35
Speaker A
створювали. Простіше переб'ю. А ты имел вот в виду в разных этих, ты имеешь в виду разные файлы Пайthна создавать, потом импортировать всё в главный мей, правильно?
89:45
Speaker A
Всё, я понял. Да, абсолютно верно. Да, ну мы пока просто, да, не смотрели, это позже будет.
89:50
Speaker A
[сопіння] Да. Так, що тут это у нас є? Що що еще такое можна зробити? І у нас буде ще така змінна. Давайте, вона буде зватись кількість попиток. То есть attempts counter, если я правильно написал это слово. Нет, видимо, с одной оно не АТМ ПТС. Оно так
90:14
Speaker A
пишется, насколько я помню, да? [хекання] То есть это скільки попыток за сколько? Ой, сейчас. Зачем нам попытки? Это ж не то. Попытки - это Да, это я уже что-то немножко это в другом приложении у нас попытки будут. Это когда мы отгадывать
90:27
Speaker A
будем. Тут тут мы не будем никаких попыток делать. Давайте ми що зробимо? У нас буде цикл.
90:34
Speaker A
Нам треба зробити, щоб у нас був бесконечний цикл. І він буде працювати до тих пор, пока користувач хоче генерувати пароль. То есть ми зробимо бесконечний цикл. у нас буде while true.
90:48
Speaker A
І тут ми будемо з вами е-е що робити? Просить користувача ввести довжину пароля. То есть у нас буде там current password len. Да, ми напишем, що у нас буде input. Нет, просто input.
91:10
Speaker A
Ладно, мне подсказку пишет, но мы кинтую не будем приводить, тому що, ну, ми можемо помилку отримати, поэтому ми що зробимо? Ми перевіримо, що якщо у нас current password lengths is numeric, от якраз применяємо функцію, да, только мы напишем if not is numeric,
91:36
Speaker A
то есть, если это не число, то ми напишемо, що print your password your password length must be numeric, да? То есть валидация у нас первая. Ну и зробимо тут continue.
91:51
Speaker A
Continue, потому что, ну, всё, то есть, якщо він там вёл не число, да, то, соответственно, дальше проверять смысла нет. Ну, и далее мы напишемо, потому что это связанная проверка. То есть тут мы можем уже кенту привести, потому что якщо мы проверили, что, ну,
92:06
Speaker A
то есть тут у нас фолс был, то есть у нас все ж таки в рядке там число, то значит мы можем спокойно кенту приводить. То есть, якщо у нас буде менше min password lтей варіант напишу, а потім ми с зробимо
92:38
Speaker A
більш коротко, да? То есть, видите, тут можна навісти курсор мишки отак цей, да? І розумі то есть ми кажемо, якщо наш буде пароль некоректної довжини, да, ми кажемо, що must be between mean lengths.
92:53
Speaker A
Тут написал between mean and так. И тогда давайте, чтобы у нас это всё было більш так красиво.
93:18
Speaker A
Вот Fредок сделаем. То есть у нас your password must be between там and это там characters.
93:27
Speaker A
Ну, короче, какая-то текстовка. Ладно, так така в нас буде. Мы сейчас не будем сильно до этого. Вот. То есть continue.
93:35
Speaker A
То есть проверяем, что у нас некорректная довжина пароля. Continue. І що він буде? Просить опять ввести довжину. Вымы, короче, говорю, просить, пока он не ведёт. І можна що зробити?
93:46
Speaker A
Виход із програми у нас буде там в конце перевірятись, к примеру. То есть тут мы убедили, що довжина паролю у нас корректная. То есть всё окей. Що ми робимо? For range, то есть current l password. І нам треба
94:00
Speaker A
що зробити? То есть у нас буде десь нам треба зробити, то есть в нас буде тут, наприклад, наш New Password.
94:10
Speaker A
Password буде пустий рядок поки що. І ми будемо тут наприклад это конечно можна покращити. Давайте сейчас плохо напишемо і потім покращимо. То есть ми будемо що робити? То есть брать і та ні, що вам тут random choice із наш password dat. Хотя вроде тоже
94:29
Speaker A
было. То есть ми будемо що робити? То есть в наш рядок додавати якісь чос. Що буде робити?
94:35
Speaker A
Випадковим чином вибирати якийсь символ. Ну просто якесь значення із колекції. В нашому случаї якийсь символ із рядка.
94:43
Speaker A
От наш рядок этот огромный, да, в котором там всякие значения. Вот. Скажіть, будь ласка, яка тут проблема у нас буде з точки зору якості производительности?
94:59
Speaker A
Я сегодня про это говорил. Ось New Password, там щось є таке. Так, хто-то написав, ну, New Password. Яка проблема?
95:18
Speaker A
Так то воно працювати буде. Но в чому, скажем, что на рандом будет буквы кидать или как?
95:28
Speaker A
Не, ну ладно, давайте. Каждая буква будет каждой переменной. Как-то так. Новый объект в памяти. То есть у нас строчки неизменяемые, как я говорил, им был. Я же такой пример в начале урока показывал примерный. И когда вы меняете в цикле, то есть вы к строчке что-то
95:42
Speaker A
добавляете, меняете её как-то под капотом новый объект создаётся. То есть у нас будет, получается, много вот таких объектов создаваться.
95:50
Speaker A
Оно потом должно быть удалено. Ну, то есть это не производительно. Ну, мы исправим это пока. Вот, да, так ставим.
95:58
Speaker A
Вот. И далі, що мы напишем? Там, наприклад, is exit якийсь там или там should exit.
96:06
Speaker A
Ми напишем, що int, да, не int, просто input. Do you want to exit? If yes, ми зробимо break else continue.
96:18
Speaker A
Ну, тут криво это немножко так зробив то вообще не надо. З чем воно не continue.
96:25
Speaker A
Якщо в нас буде yes, та то, соответственно, ми зробимо брейк. Ну, давайте ми напишемо, у нас буде print там goodby і breakрейк. Можно, конечно, замість брейка написать system exit, то есть это завершить программу принудительно. Це буде якби более так
96:42
Speaker A
чинно. То есть мы можем там импортировать отсюблиотеку и написать, наприклад, там sis. Exit0. Ну, то есть это завершить программу, да? Это будет более так канонично, что ли, в данном случае. Ну или брейк написать теж нормально. Брейк - це якщо у вас далі
97:01
Speaker A
якась буде ще логика, да? Планируете ще там щось. Так, ну давайте проверим, як воно працює. Так, длина паролів у нас буде восім. Вот у нас новый пароль. Да, и тут у нас сейчас одна проблема будет. Вы сейчас её, наверное, увидите. Продолжаю.
97:20
Speaker A
А не надо ещё раз было нажать надо было. Так, ну давайте вот у нас буде.
97:28
Speaker A
Ну неважно, что-то другое. Нажимаем там. Давайте 16. Так, хотя не проблемы у нас этой тут не будет конкретно. У нас перестворие кожного разу рядок, поэтому проблемы тут нет.
97:42
Speaker A
Ну от ми генеруємо, то есть ми там пишемо, наприклад, давайте 19. Ага. І він вам нам написав. Почему він написав? Потому що в нас умова неправильно працює.
97:58
Speaker A
Нам оцю умови треба поправить, дивіться, тому що він нам зараз. То есть, якщо я напишу наприклад семь а дайте сім, і він нам все одно генерує.
98:10
Speaker A
То есть наш наша оця умова, вона не працює, да? То есть зараз ми її покращимо.
98:17
Speaker A
Вот. Ну і давайте напишемо якусь якусь єрунду, щось таке. Отак, да? Віт, він каже, що в нас манарик. Ну то есть ця перевірка у нас працює нормально. А отут, ну, нам надо розбі умови окремих, там провірить. Ну, і пишемо, давайте, е, password length у
98:35
Speaker A
нас буде там 12. Натискаємо yes. Все, goodbye. Ось проблема тут у нас є з точки зору алгоритма самого, бо що він у нас перевіряє. Макс password L більше, якщо у нас поточної і строго більше максимальної.
98:58
Speaker A
Ну, то есть тут у нас неправильношка написано. Давайте ми що напишемо, что у нас, якщо наш current password len кинту его приведём, буде більше max password length. Давайте напишем must be less than вот і наступний ліф. Ну то есть более мы
99:37
Speaker A
так якби ропишем детально, да, для того, щоб користувач понимал. Можно, конечно, было это в одну объединить перевірку.
99:43
Speaker A
Так. І якщо воно буде, соответственно, меньше, то буде е мін, да? То есть строго буде менше.
99:52
Speaker A
Що ж такое скопіровалось? То ми напишемо must be more than. І тут зробимо мінус оди, да, наверно.
100:13
Speaker A
Ну, потому что якщо у нас будет с, то мы как бы скажем больше, чем семь.
100:19
Speaker A
Или можно не усложнять, а написать просто must be больше либо равно, да, там, а тут у нас буде меньше либо равно. Ну, так укажем, неважно. Это уже текстовки, оно не имеет значения какого. Так. И, соответственно, тут також ми зробимо continue. Это все
100:37
Speaker A
можна ще покращити, само собою. Ну, пока давайте так. Так, пишем 12 генерується. Далі пишемо один. Дивіться, він пише, що мас боль більше, чем сь.
100:48
Speaker A
Пишемо теперь там 19 меньше, чим чи дорівнює 16 має бути. Пишемо 16, все есть і виход. От так що зробили. Так. Ну, це можна опять же там якось там по-іншому зробити, якщо треба.
101:06
Speaker A
Вот так. Тут пока є питання по вот этому алгоритму, що ми написали. Як воно?
101:11
Speaker A
Да, не, в принципе, всё понятно. Только надо потренироваться с этими импортированными, как писать, потому что не запомнит быстро эти коды.
101:24
Speaker A
Да. Ну вот этот вы пока можете не использовать. Это я уже так добавил. Ну потом по нему поговорим. Тут по сути вам три константы надо запомнить. Asky letters, digits, punctuation. Всё. Там є ще ask as ask lower case і ask upper
101:38
Speaker A
case. Якщо вам треба окремо отримати тільки маленькі чи тільки великі літери, а askers - это і то, і то сразу. От.
101:50
Speaker A
Вот. Ну і тут що проблема, про яку я казав, ну така как бы проблема з точки зору такого производительности такой, це те, що у нас тут рядок, да, давайте мы это исправим на список. То есть ми будемо додавати це в список.
102:03
Speaker A
То есть ми напишемо, що у нас тут буде крапка append в список. Добавим е саме. Щас я мал. Так добавимо. Будемо додавати, да? Це буде у нас список в итоге. І нам треба це буде перетворити на этот рядок. То есть это будет под
102:28
Speaker A
капотом у нас список по сути цих там всяких символов. И мы можемо что зробити? То есть мы возьмём ще тут напишем потом после этого всего напишем, что наш New Password, давайте не так хочу его перемешать. То есть мы напишем, что random,
102:51
Speaker A
да? Нет, это random shuffle new password. Shffle будет перемешивать их. Так, якщо би що як результат файл зберігати якщо я б в'язав для майкрософту, а файл, ну, это мы посмотрим, да, файл там не сложно, це зберігається файлик просто, що файлы ми позже будем
103:16
Speaker A
смотреть. Ми можем сечас зробити зберігание результата, но если вы хотите именно пароль, я так понимаю, да, зберегти файл сгенерированный да?
103:27
Speaker A
Так, це мы перемешиваем. Вот. И після цього что мы сделаем? Ну, превратим это в рядок. То есть мы напишем, то есть перезапишем. Зробимо ось так. Пустой рядок join New Password.
103:41
Speaker A
То есть New Password - це список всяких символов. То есть, а, символы там в формате рядків будут. І [сопіння] мы что возьмём?
103:49
Speaker A
Мы возьмём и це просто объеднаємо все эти символы, все эти рядки, да, там в списке. И между ними у нас будет в якости разделителя просто пустой рядок.
103:59
Speaker A
Ну, потому что мы ж хотим пароль без пробелов там или ещё чего-нибудь. Вот, давайте запустим и посмотрим. То есть у нас буде тут 16.
104:09
Speaker A
Вот наш пароль. Да, там продол. А, не, не то. [сопіння] Так, мы там, да, хотим продолжить.
104:20
Speaker A
Напишем это пароль вы. То есть тут уже мы так немножко это оптимизировали, но опять гает, да, с интернетом.
104:36
Speaker A
Так, сейчас як воно там чутно чи ні. Плюс мінус. Окей. Ну, сечас попробу. Так, зараз, зараз чутно лучше.
104:59
Speaker A
Так, що окей так вроде чутно. Не знаю, что с интернетом происходит непонятное. Он вообще бывает отключается.
105:12
Speaker A
Ладно. Ось так. Що ми написали? А ви не в Україні, мабуть. Да. Ну я в Україні.
105:18
Speaker A
А в Так. Так. Там питання бачу. Ага. Має питання стосовно system exit. Що воно означає і чим воно відрізняється від брейк?
105:31
Speaker A
Нурейк - це просто ви, якщо хочете завершити цикл, да, щоб він не працював. Ось. А, ну просто що він закінчив свою роботу. А system exit - це ви хотите, щоб вот видите, він пише process finished with exit cod zero, да? То есть
105:49
Speaker A
нуль. А то есть виби просто кажете, що програмі треба закрыться полністю. Ну это як закритие програми. Всё.
105:58
Speaker A
А нуль - це просто код, що там все окей, да, що вона закрилась. Можна там какой-то другой код писати. Просто зазвичай так пишуть. А навіщо використовувати це, а не брейк чи цей?
106:11
Speaker A
Ну, брейк. Брейк ви пишете, то есть, якщо, наприклад, то есть я тут розумію, що на вот этом етапі моя програма має закрыться. Ну, то есть все, далі я працювати с ней не буду, да. Поэтому я решил написать system exit. Якщо би,
106:23
Speaker A
наприклад, я розумів, щоміт цикл закінчив свою роботу і далі там якийсь код подальше буде працювати, ну тогда тогда, наприклад, е-е оно бы там, скажем, ну я бы не писал так, конечно, ось там брейк ми би ми би написали, ну і
106:41
Speaker A
далі оно би там продолжило себе працювати, к примеру. Так що Так. [хекання] Окей. А-а, значит, что мы тут с вами реализовали, це і, мм, що нам треба ще зробити? Ми можемо вилучити отсюда всякі символи. Ну, наприклад, у нас є там L маленька,
107:07
Speaker A
велика, потім якісь специфічески і поприбирати їх. То есть зробити якісь там Forbidden е letter Sms там щось таке. В мене десь в этом прикладі, який я где-то я це описував, кажется, ну, знаете, буває там прибирають такі символи.
107:29
Speaker A
О, ну вот эти forbidden symbols. Давайте мы отсюда это заберём. Ну, и вместе сейчас реализуем.
107:36
Speaker A
То есть у нас, наприклад, отут это L маленька, L велика, I маленька, I велика. Вот этот символ там кавичка. Ну, то есть тому що це можливо складно буде запам'ятати там в різних шрифтах. Это по-разному воспринимається. Ну, і предположим, мы, ну, от хотим убрать,
107:55
Speaker A
да, вот, щоб у нас не генерувалось пароль от з тими символами. Вот як мені зробити, от які у вас є ідеї, от як зробити так, щоб у нас они не попадали?
108:14
Speaker A
If not, ще раз, что я через if not не, ну как if note, ну то есть что именно, где как if not это у нас не подойдёт, скорее всего. Это ж если нет, что потрібно зробити, ну, уже после сгенерированного пароля
108:34
Speaker A
его вставлять. То есть Нене, конечно, не после, до, до, но у нас тогда пароль меньше получится, не? А если мы возьмём initial data, password data, в цикл его while возьмём и просто будем брать элементы, которые соответствуют вот этим
108:50
Speaker A
там шести символам чи скольки? Ну то есть мы можем взять из вот этого initial password data, удалить. Ну убрать, да. Дададада да да. Но как убрать? То есть мы не можем э-э там их как-то удалить, да? То есть
109:07
Speaker A
надо что-то другое сделать. сделаем не строкой, а этим, как это, листом и из него аккуратненько всё это дело изъять.
109:23
Speaker A
Ну, типа перебрать все элементы, лишние изъять. Ну, если, ну, во-первых, как как вы это к листу приведёте? Это первый вопрос. Ну, давайте сейчас мы это закомментируем, чтобы оно не мешало. Ну, я думаю, если initial password data не равно этим
109:38
Speaker A
символам, то продолжить типа или как? Ну, то есть тут разные есть варианты. Ну, давайте возьмём initial password data, да, к листу, да? То есть вот у нас водалист наш, но нам, то есть ми можемо що циклом перебрать і потім що перевіряти. Якщо у
109:57
Speaker A
нас if там символ е не присутній в этом рядке, да, то його там видаляти. Ну какби такой со варіант. От ми целий список створюємо.
110:07
Speaker A
Ну можна можна, наприклад, що зробити? Це через replace, например, можна зробити. То есть у рядка, то есть брать так, що робити плейс і прибирати оці, то есть замінять на пустой рядок, к примеру, да? То есть можно так сделать,
110:27
Speaker A
но в таком случае у нас будут перестворюватись рядки. Тоже такой себе вариант. Поэтому чистить здесь, наверное, смысла особого нет.
110:38
Speaker A
Поэтому ми що будемо робити? То есть ми візьмемо наш цикл і ось тут, е, ми що будемо там, де ми з вами генеруємо, то есть ми отримаємо якийсь символ, ми можемо перевірити. То есть, якщо він у нас, наприклад, ну, единственное, що у
110:57
Speaker A
нас password l, то есть нам надо зробити так, що password l, ну, от потому что как-то указать, да, что нам надо генерувати. То есть вот этот вариант с фором уже у нас не подойдёт, да? Потому что якщо ми,
111:11
Speaker A
наприклад, напишемо, що if, давайте так сделаем, вот наш choice выбираємо, да, там наприклад current symbol да і говорим, то есть вибираємо і потім ми можемо, наприклад, записати сюда, правильно, винесли просто в зміну.
111:28
Speaker A
І ми можемо написати, що if наш current symbol там in forbidden symbols, ну, предположим, continue та ми зробимо, іначе будемо додавати.
111:40
Speaker A
Іли можна зробити там, що not in forbidden, тоді ми додаємо. Ну, неважно, это просто с разных сторон подходим.
111:45
Speaker A
Тут, наверное, даже я бы написал так: not in, то мы додаємо. Ну, потому что это будет короче, просто не надо будет писать. Но с какой проблемой мы тут будемо стикатись? Кто скажет?
111:58
Speaker A
У нас количество символов будет меняться. Лучше вайлом сделать, пока не достигнет количества цикл нужно. Дадада.
112:06
Speaker A
Да. То есть, да, всё верно. То есть, поэтому ми цей цикл убираем. Ми робимо while true. К примеру. Можно и не можно по-другому. Ну, давайте сделаем с true.
112:16
Speaker A
Хочу так показать. То есть бесконечный цикл, но мы перед ним давайте створимо. У нас будет current password.
112:28
Speaker A
А у нас там, кажется, current password links. Давайте немножко по-другому сделаем. У нас буде password LS.
112:45
Speaker A
Это то, що користувач хоче, да? То есть это это буде так в нас краще зватись. І зробимо, наприклад, у нас буде current password len. І тут ми напишемо нуль, да? Ну, как счётчик такой. Это один із варіантов, опять же, може по-разному я
113:01
Speaker A
вже. Так ось, і ми що будемо робити? То есть ми генеруємо наш там символ якийсь, перевіряємо, що якщо він у нас там нербден, додаємо і збільшуємо наш current password length п. Ну, то есть, що вот мы добавили, да, і потім
113:17
Speaker A
перевіряємо, що якщо, наприклад, у нас if, та не то, що ме там пишет, якщо у нас current password l буде, ее, наприклад, більше чи дорівнювати Max Password Lengs, то ми зробимо брейк.
113:37
Speaker A
Ну, що все, даліби нам немає сенсу генерувати правильно? Якось так. Ну и давайте для теста, чтобы было проще считать, давайте ми зробимо.
113:45
Speaker A
У нас мінімальна довжина пароля буде чотири символа. Ну, щоб считать було проще. Вот видите, как удобно. У нас централізованый конфіг. Нам не треба там по коду бегать, менять везде. Пишемо, давайте чотири символа.
113:59
Speaker A
Так, окей. Что-то он тут нам не то сделал. Current password lengs. М. Явно оно ні. Чотири символи зробив.
114:19
Speaker A
Давайте вийдемо. Ну, вроде у нас от немає цих самих зайвих символов. Давайте ми що візьмемо, поставим зараз точку останова. Ну і подивимося, як працює. Продебажим заодно, да? То есть глянем, в чом ту в нас проблема. Пишемо довжину пароляч.
114:40
Speaker A
Так. І йдемо на наступний крок. То есть от у нас згенерувалося отакий символ. Перевіряємо. То есть він у нас не присутній, да? Ми додаємо і перевіряємо.
114:52
Speaker A
Якщо current password lens буде більше чи дорівнювати максимальной довжині, а я що написав? А, ну да, тут у нас этот самый максимальная довжина паролись. Это я в ошибку. Всё, я понял вже сю ошибку.
115:08
Speaker A
Зрозуміло, в чём в чом помилка? Да. Да. Надо было ещё и минимум написать, да? Ненінен не надо ж указать этот самый больше password l не-не password l вот это вот е по поточний наш да оцей то есть вот ми password l наш так
115:27
Speaker A
і це означає що ми получається наш оцей password lнж порівнювати не з мінімальним максимальним да з тим тою довжиною яку користувачувало ну это я просто да ошибся вот і у нас кстати тут дивіться ми бачимо ще проблему таку що
115:40
Speaker A
ця проблема в тому що Ну, у нас тут кинту не приведено все, да? То есть мы для перевірок приводили кинту, поэтому можно что зробити?
115:51
Speaker A
Можно, ну, тут мы кинту приводим. Ещ некорректная довжина, можно вот так сделать. Ну, это опять я уже так на ходу что-то придумываю. То есть ми наш password l, який у нас є, можемо привести, наприклад, к этому кінту. Так. Ну і далі, наприклад, у нас
116:18
Speaker A
ми будемо нам вже не треба буде писати оцей int. Ось отак все. То есть получається, що ми якщо у нас нот намерик, ми кажемо, що это, ну, має бути число. Якщо же у нас там все окей, вот этот else даже нам не
116:39
Speaker A
потрібен, ми отак робимо просто. То есть кажемо, что приводим наше password length к inту, то що там рядок. І далі це у нас in, тому що далі ми будемо з ним працювати как с интом. Все. І вот перевірка оця, що поточно сколько там ми
116:55
Speaker A
вже в наш этот пароль додали символов, да? Якщо с у нас більше чи дорівнює password lengs, ну, краще тут написати не більше чи дорівнює, а просто дорівнює password lengs, то break, да? То ми прекращаємо все, пото що, ну, більше чи
117:10
Speaker A
дорівнює у нас більше все одно не має бути. От поэтому давайте сейчас чотири напишем. И от у нас дійсно чотири символа згенерувалось. То есть пароль із чотирьох символов. Давайте ще раз.
117:24
Speaker A
Ну, по суті, у нас тут вже не має бути ситуації, коли в нас генеруються якісь там заборонені, так сказать, символи.
117:31
Speaker A
Давайте 16 напишемо, подивимося. Ну, вроде нету, да? Ну, не має бути, по крайней мере. Можна, конечно, потестировать це там посмотреть, но має працювати коректно. Так що вот ми немножко даже покращили це отак.
117:50
Speaker A
[сопіння] Так. Ну, якісь питання може є, як на даному етапі цей приклад. То есть там выше мы сделали переменную, присвоили ей password in, чтоб дальше уже везде не указывать. Правильно всё.
118:02
Speaker A
Да, да, да, да. Ну, мы понимаем, что дальше нам это в формате инта надо, поэтому написать, да?
118:10
Speaker A
Что ще тут можно додати? Я не знаю. Сейчас у меня идей нема. Як там ще? Ну, можна файлик це зберегти, конечно, да.
118:17
Speaker A
Ми з файлами якби не не працювали, но якщо цікаво, то можемо там быстро это записать.
118:23
Speaker A
Там наш New Password можна просто написати with. От і пишемо просто там запишемо Password txt у нас якийсь буде.
118:39
Speaker A
У нас в текстовий файлик ми по суті запишемо. Сейчас у нас появится тут. А, ну да, ещё не появится. А так, давайте отам 16 пишемо. Ну, он буде перезаписувати тут, правда? Всё. И вот у нас, видите, він є. Записали его.
118:54
Speaker A
Если захочется, конечно, наприклад, цей а-а щоб у нас додавались, то можна append. Ну, это ми будемо окремо вивчати. Просто там что-то спросил, поэтому можна що робити.
119:11
Speaker A
І ще давайте ми будемо додавати до нього переносний новий рядок, щоб новий пароль був з нового рядка. Ну давайте ми сечас с вами нагенеруємо якихось там паролей, да? Там А скажіть, будь ласка, а файл будь-якого розширення можна?
119:28
Speaker A
Да, ну по суті, да, ну как то есть можна, ну ми TXT зазвичай, да, ну можна і якогось іншого.
119:35
Speaker A
Так, давайте там девять. У нас там мінімум, наскільки я пам'ятаю, четыре. Давайте там см напишемо.
119:44
Speaker A
Всё. И хотим выйти. Так что он тут нам записав. И вот все наши вот эти пароли, які мы там себе писали, вот они у нас є.
119:55
Speaker A
Ну это такое. То есть мы один раз создаём файл и каждый раз, когда мы будем пользоваться программой, будет записываться пароль, он будет сохраняться в текстовые документы. В данном случае, да, то есть я вот, например, если сейчас вот давайте
120:07
Speaker A
запущу, напишу 16 там, да, каких-то там, да, ещё вот нагенерю там пару паролей, он будет дописывать, то есть у нас не будет пересоздаваться. Вот они дописались, как за данных паролей. Там такая строчка.
120:20
Speaker A
А скажите, файл будет создаваться после того, как мы с программы выходим или в принципе даже когда программа работает, файл будет создаваться?
120:26
Speaker A
Файл будет создаваться, когда мы на эту строчку перейдём, когда мы будем делать, он создастся, если его нет. Ну, то есть это режим append - это дозапись. То есть если файл есть, то мы в него дописываем.
120:37
Speaker A
Если файла нет, он создаётся и мы в него пишем. Ну, это мы отдельно там детально пройдём. Просто это так уже спросил, спросили, я уже так показал. У нас будет тема с файлами, там это детально всё расскажу.
120:51
Speaker A
Вот так. Що такий у нас генератор пароля? Окей. А якісь є питання? Може є?
121:11
Speaker A
Так, тут у нас в темі урока, точніше в конспекті, який отут є, тут теж є генератор пароля. Ну, це така версія.
121:19
Speaker A
Тут по суті у нас, витя почти те ж саме зроблено. Теж, витя список використовуємо шаffл. Ну, по суті, да, мы ми почти один в один зробили, хотя я каша ж не списувала, так писав. От єдине, що це Вітя тут я стріп додав, а осьбе я забув
121:36
Speaker A
це зробити. І це дійсно важлива штука, да? Вот это я Вітя не додав, потому что дивіться, то есть користувач от может ввести, от я можу написати, да, там там 16 и, наприклад, я пишу большую букву Y, да, то есть. От.
121:56
Speaker A
А я тут lover написав. Віно відпрацювало коректно. Ну, якщо би у нас не було lover, то, ну, була би, скажемо, проблема, що він би не зрозумів, що це таке. Но опять же, у нас може бути інша ще проблема. Вона може заключатися в
122:10
Speaker A
том, що я можу написати пробели і потім якось так. От видите, і воно не спрацювало. Ну, там маленьку міг літеру написати та там, наприклад, пробел пробел. Правда, в конце он кажетсях обрезает ці пробелы. Видите? То есть ви поламали чуть програму.
122:30
Speaker A
І от, щоб це вирішити, ми маємо викликати функцію strip, яка буде видаляти якраз оці пробели слева справа.
122:37
Speaker A
І в такому случаї, коли я пишу вже, наприклад, там пробели пробелиы там yes, пробелы, пробелы, всё равно будет выходить, що він буде їх видаляти слева, справа і тим самим гарантовано у нас все буде працювати як треба. Ну, отак.
123:03
Speaker A
що, ну, може якісь є питання у нас щет пару хвилин до конца урока. Скажіть, будь ласка, так мы уже всё посмотрели.
123:10
Speaker A
А вы говорили решать задачи на лидкоде и где ещё? Код Wars. Есть такой сайт.
123:17
Speaker A
Вот пишется lead cд и код wars. Ну, можете загуглить просто посмотреть. Ну, кодварс он попроще, насколько я на кодварсе когда-то давно что-то делал.
123:34
Speaker A
Вот. А так я я лидкодом больше пользовался. Ну, CWS тоже, да, он он проще вообще. Его часто в этих всяких там вузах любят давать в качестве домашек, когда припаду придумывает что-то, он на дворсе даёт просто что-то решать.
123:52
Speaker A
Так, окей. Може ще якісь питання? У меня есть вопрос такой личного этого. Это не прямо этого урока касается. У меня есть вопрос по поводу Cloud Cod.
124:05
Speaker A
Что бы ты посоветовал? Вот у меня вот есть, допустим, онлайн-курс этот. Начинать его сейчас или лучше уже после того, как более освоишь Python сам без помощи этого?
124:18
Speaker A
Ну, если я там, не знаю, это можно и сейчас учить. Какая разница? Я думаю, это ж это самое яишка.
124:27
Speaker A
Да. Да. Вот. И не, ну, в любом случае, как бы научиться правильно работать с Иишкой, это это полезно. Ну, вы ж не будете списывать всё, да? То есть, а вы будете сначала сами писать код, да? То есть учиться, потому что мы, кстати, вот на
124:45
Speaker A
уроке четырнадцатом или каком, а, не одиннадцатом. Вот у нас будет урок с Там я вам покажу, как работать. Ну, это новый урок, раньше его не было. Вот. И там надо делать ревью. То есть этот искусственный интеллект, он код, да,
125:01
Speaker A
пишет, но так себе. То есть там надо ему всякие уточнения писать. Поэтому если вы пойдёте на там курс или что это, я не знаю, только плюс будет, ничего не потеряете.
125:14
Speaker A
Я понял. Да. Окей. Так, ще питання? Якщо нема, тоді всім дякую. Гарного вечора. Спасибо за урок. Хорошого вечора.
125:29
Speaker A
Побачи. Yeah.
Topics:Pythonрядкиimmutableконкатенаціяслайсигенератор пароляітеруваннякодуванняалгоритминавчання програмуванню

Frequently Asked Questions

Чому рядки в Python є незмінними?

Рядки є immutable, щоб забезпечити безпеку і оптимізацію пам’яті. Зміна рядка створює новий об’єкт, що запобігає непередбачуваним помилкам.

Як краще змінювати рядок у циклі?

Краще використовувати список символів, змінювати його, а потім об’єднувати в рядок за допомогою функції join, щоб уникнути створення великої кількості об’єктів.

Які основні методи ітерації по рядках розглядаються?

Ітерація за допомогою циклу for для посимвольного перебору та використання індексів через range для доступу до символів по позиції.

Get More with the Söz AI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →