SlideShare a Scribd company logo
1 of 18
Download to read offline
Урок № 7
Рядки і
символи
ЗМІСТ
Рядки. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 3
Робота з рядками.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 4
Індексація рядків. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 5
Методи рядків. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 7
Метод find і rfind .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 8
Метод replace. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 9
Метод count.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 9
Методи рядків. .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 9
Зрізи рядків.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 11
Ознайомлення з модулем string.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 16
Рядки
Як ви вже знаєте, у багатьох створених програмах
ми використовували рядки. Давайте докладніше
з’ясуємо, що ж це таке насправді!
Мова Python вважає рядком все, що знаходиться
всередині лапок. Наприклад, якщо помістити цей текст
в лапки, він також стане рядком для Python (рис. 1).
З точки зору комп’ютера, весь текст – це набір сим-
волів. У кожного символа є свої код. Різний код та у
різних за регістром символів, це потрібно враховува-
ти, коли ви заходите на сайти. Наприклад, логін Alex і
alex належатимуть абсолютно різним користувачам. Все
тому, що велика буква представлена одним кодом, а ма-
ленька – зовсім іншим, тому комп’ютер сприймає їх як
два різні символи.
Рисунок 1
3
Рядки і символи
Якщо говорити про рядки, то це – послідовність різ-
них символів.
Для написання деяких програм просто необхідно
вміти працювати з рядками. Давайте ще раз подивимося
на приклад рядків з попереднього уроку:
s = "Guess my number"
print(s)
Іноді потрібно розбити один рядок на кілька, напри-
клад, коли потрібно помістити багато тексту всередині
лапок. Такий запис ніяк не вплине на результат роботи
функції print(), але дозволить більш компактно роз-
містити код. Спершу поставимо символ , а потім вже
виконаємо перенесення тексту:
s = "Hello! This is my new game
Guess my number"
print(s) # Hello! This is my new game Guess my
number
Робота з рядками
Як ви пам’ятаєте, якщо потрібно виконати перене-
сення рядка, ми використовуємо строковий літерал n.
Щоб додати табуляцію перед текстом, слід додати літе-
рал t:
print("Start:ntstringntstringntstringnEnd")
4
Урок № 7
Конкатенація (додавання) застосовується для з’єд-
нання двох рядків і реалізується за допомогою знаку +:
s1 = "Hello"
s2 = "World"
print(s1 + s2) # HelloWorld
Дублювання рядка може знадобитися, коли потріб-
но продублювати будь-який текст або набір символів
певну кількість разів:
s1 = "Hello"
print(s1 * 3) # HelloHelloHello
Довжина рядка визначається за допомогою функції
len(). Ця функція може знадобитися у найрізноманіт-
ніших завданнях. Припустимо, ми пропонуємо корис-
тувачеві ввести код з шести символів, а потім перевіря-
ємо, чи увів він достатню кількість символів. Приклад
запису такої функції виглядає наступним чином:
s1 = "Hello"
print(len(s1)) # 5
Індексація рядків
Оскільки рядки – це набір символів, то з будь-якого
рядка можна отримати конкретний символ. Для цього
потрібно лише знати його індекс (порядковий номер).
Важливо пам’ятати, що індекс першого елемента завжди
дорівнює нулю.
5
Рядки і символи
Давайте розглянемо приклад використання індек-
сів:
s = "Hello World"
print("symbol [0]: " + str(s[0])) # H
print("symbol [6]: " + str(s[6])) # W
В даному прикладі створюється рядок s, а потім
виводяться символи з індексами s[0] і [6]. Майте на
увазі, що функція len() поверне кількість символів в
рядку, але індекс останнього елемента буде на одиницю
меншим. Для даного рядка допустимі індекси від 0 до 10,
більше значення викличе помилку. Наприклад, s[11]
виконається з помилкою:
s = "Hello World"
i = len(s) # i = 11
print(s[i]) # s[11] = Error
В результаті в консоль буде виведено повідомлення
типу IndexError: string index out of range. Через
цю особливість, будьте більш уважні під час звертання
до елементів рядка за індексом.
6
Урок № 7
Методи рядків
Часто з рядками потрібно виконувати різні шаблон-
ні дії (заміну букв, пошук і т. п.). Саме для таких завдань
у багатьох мовах програмування є заготовлений набір
методів.
Метод – це функція, яка застосовується до об’єкта, в
даному випадку – до рядка. У мові Python достатньо ба-
гато різних методів і запам’ятати призначення кожного з
них буде непростим завданням. У зв’язку з цим, завжди
звертайтеся до документації (https://docs.python.org/3.6/
library/stdtypes.html#string-methods).
Розглянемо деякі методи на прикладі їхньої роботи
в коді.
Синтаксис методу:
імя_об›екта.імя_метода (параметри)
Уявіть, ми виявили, що символи представлені в різ-
них регістрах, що робить нашу програму особливо не-
привабливою. Чи не шукати ж нам усі рядки в коді і ко-
ригувати кожен з них! Для цього використовуємо один з
наведених нижче методів:
s = "guEss mY numBer"
s.capitalize() # Guess my number
s.title() # Guess My Number
s.upper() # GUESS MY NUMBER
s.lower() # guess my number
7
Рядки і символи
Метод find і rfind
Одне з основних завдань при роботі з рядками – по-
шук ключових слів.
Метод find застосовується до рядка і виконує пошук
підрядка, який передається як параметр, тобто в дужках
find(""). В результаті функція повертає індекс першого
входження шуканого підрядка. Якщо ж такий підрядок
не знайдено, метод повертає значення, яке дорівнює -1.
Не лякайтеся, якщо таке формулювання здалося вам
складним. З’ясуємо принцип використання find на при-
кладі, і ви відразу зрозумієте що до чого:
s = "message"
s.find("m")) # 0
s.find("s") # 2
s.find("w") # -1
Метод rfind працює за тим же принципом, тільки
повертає індекс останнього входження підрядка, тобто
виконує пошук справа наліво:
s = "message"
s.rfind("m") # 0
s.rfind("s") # 3
s.rfind("w") # -1
Різницю в роботі цих методів можна побачити, по-
глянувши на третій рядок, де виконується пошук сим-
вола s. У першому випадку було знайдено перше вхо-
дження цього символу з індексом 2, а в другому випадку
символ s був знайдений в позиції 3.
8
Урок № 7
9
Рядки і символи
Метод replace
Метод replace(old, new) повертає рядок, в яко-
му будуть замінені всі входження old на підрядок new.
Метод може приймати два параметри replace(old,
new) або три replace(old, new, num). Як ви вже мог-
ли здогадатися, old – це текст, який будемо замінювати,
new – текст, на який будемо замінювати, num – кількість
зроблених замін.
s = "best regards best"
s.replace("best", "kind") # kind regards kind
s.replace("best", "kind", 1) # kind regards best
Метод count
Порахувати кількість входжень підрядка в рядок до-
поможе метод count:
s = "Hello World"
s.count("l")) # 3
Методи рядків
Перейдемо до вивчення методів, які дозволять пере-
вірити рядок за різними критеріями. Це може бути пе-
ревірка на наявність букв, цифр і навіть регістрів. Роз-
беремося докладніше, як це працює.
■■ Метод isnumeric() перевіряє, чи є в рядку цифри.
Якщо цифра є, поверне true, якщо ні – false.
10
Урок № 7
■■ Метод isupper() дозволяє дізнатися, чи є в рядку
літери у верхньому регістрі. Як ви вже могли здога-
датися, повернеться true, якщо такі будуть знайдені.
■■ Метод islower(), в свою чергу, використовується для
нижнього регістра. Працює за аналогією з описом
вище, повертає true або false.
■■ Метод isalpha() поверне true, якщо всі символи в
рядку будуть буквами.
Приклад використання методів:
password = "qw@E1r"
print("nTry isalpha: ")
for symbol in password:
alpha = symbol.isalpha()
print(f"{symbol} - {alpha}")
if (not alpha) and (symbol == "@"):
print(f"It is {symbol}")
Результат виконання коду буде наступний:
Try isalpha:
q - True
w - True
@ - False
It is @
E - True
1 - False
r - True
Рисунок 2
11
Рядки і символи
Зрізи рядків
Зріз (slice) – це витяг з рядка одного символа або су-
купності. Можна провести аналогію з відсіканням пев-
ної частини тексту.
Оператор вилучення зрізу має вигляд [I:j], де
i – початок зрізу, а j – кінець. Цікаво те, що символ з
індексом j у зріз не входить. Можна також задати крок
[I:j:step] зрізу. За замовчуванням перший сим-
вол  –  це початок рядка, відповідно, він дорівнює 0, а
другий дорівнює довжині рядка (рис. 2).
s = "message"
print(s[0:]) # message
print(s[2:5]) # ssa
print(s[2:-1]) # ssag
print(s[1:6:2]) # esg
print(s[:5]) # messa
print(s[:]) # message
Рисунок 3
12
Урок № 7
Напишемо програму для створення надійного паро-
ля.
Здавалося б, немає нічого простішого, ніж створен-
ня надійного пароля. Однак часто користувачі банально
не хочуть придумувати складний пароль, використову-
ють один і той же ключ для різних сервісів або вводять
прості стандартні слова, піддаючи ризику свій обліко-
вий запис (рис. 3).
Для багатьох не буде секретом, що оптимальна дов-
жина пароля повинна бути близько 15-ти символів, а
складатися він повинен з малих, великих літер і симво-
лів. Також пароль не повинен містити популярних ком-
бінацій, наприклад: admin, qwerty, 12345, password і т. д.
До того ж використання одного пароля, навіть якщо він
надійний, є поганою практикою.
Існує ряд ресурсів, за допомогою яких можна при-
близно розрахувати, за який час може бути зламаний
пароль, наприклад How Secure Is My Password? (https://
howsecureismypassword.net).
Рисунок 4-5
13
Рядки і символи
Давайте за допомогою даного сервісу протестуємо
різні комбінації символів: qwerty і q1W2e#R4t%y^. Як
видно на зображеннях, другий пароль виявився більш
складний і надійний (рис. 4-5).
Варто зауважити, що вводити справжні паролі в по-
дібні форми не рекомендується. Сервіс наведено лише
для ознайомлення і створення загального розуміння
того, яка комбінація символів вважається особливо на-
дійною.
14
Урок № 7
Напишемо програму, яка буде генерувати складні
паролі:
Лістинг 1
import random
s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s2 = "0123456789"
s3 = "~!@#$%^&*()_+{}[]:/"
s = s1.upper() + s1.lower() + s2 + s3
password = ""
for i in range(15):
p = random.choice(s)
password = password + p
print(f"New password [{i}]: {password}")
Давайте з’ясуємо, що відбувається в програмі. Спер-
шу імпортували модуль import random.
Потім створили три змінні s1, s2, s3, в які записа-
ли всі можливі символи, які будуть використовуватися
в процесі генерації пароля:
s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s2 = "0123456789"
s3 = "~!@#$%^&*()_+{}[]:/"
Потім нам потрібно буде отримати абсолютно ви-
падкове значення – чи то цифру, букву або символ.
15
Рядки і символи
Для цього створюємо змінну s і, немов у коробку,
складаємо в неї всі рядки. Таким чином, отримаємо на-
ступний запис:
s = s1.upper() + s1.lower() + s2 + s3
# s = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm
nopqrstuvwxyz0123456789~!@#$%^&*()_+{}[]:/
Чудово! У нас є рядок.Тепер саме час згенерувати
пароль. У циклі for з рядка s з кожним проходом отри-
муємо випадкове значення random.choice(s). Потім
додаємо це значення до змінної password.
За допомогою послідовного виведення рядків ми
можемо відобразити результат в консоль:
for i in range(15):
p = random.choice(s)
print(p, end="")
В результаті роботи програми сформується пароль з
випадкових букв, цифр і символів:
New password [14]: qH3/0)D8_vpATV7
New password [14]: L)l@+Wd*JXsJZ)8
New password [14]: y7nT:k*&K@RgO$k
Тепер ви можете генерувати надійні паролі для своїх
облікових записів за допомогою створеної програми.
16
Урок № 7
Ознайомлення з модулем string
У	мові Python є модуль import string, який може
значно полегшити генерацію пароля, дозволяючи отри-
мати все той же набір букв і символів, не прописуючи їх
вручну.
Повернемося до Лістингу 1 і зосередимо увагу на та-
кому запису:
s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s2 = "0123456789"
s3 = "~!@#$%^&*()_+{}[]:/"
s = s1.upper() + s1.lower() + s2 + s3
Замість нього можна використовувати константи з
модуля string:
# string.ascii_lowercase + string.ascii_uppercase
s1 = string.ascii_letters
s2 = string.digits
s3 = string.punctuation
s = s1 + s2 + s3
Таким чином, результат при використанні модуля
string жодним чином не відрізнятиметься від резуль-
тату, отриманого в Лістингу 1. Відповідно, у своїх про-
грамах ви можете використовувати будь-який зручний
для вас варіант.
Урок № 7
Рядки і символи
© Комп'ютерна Академiя ШАГ
www.itstep.org
Усі права на фото-, аудіо- і відеотвори, що охороняються авторським правом і фраг-
менти яких використані в матеріалі, належать їх законним власникам. Фрагменти
творів використовуються в ілюстративних цілях в обсязі, виправданому поставле-
ним завданням, у рамках учбового процесу і в учбових цілях, відповідно до ст. 1274
ч. 4 ГК РФ і ст. 21 і 23 Закони України «Про авторське право і суміжні права». Обсяг і
спосіб цитованих творів відповідає прийнятим нормам, не завдає збитку нормально-
му використанню об’єктів авторського права і не обмежує законні інтереси автора
і правовласників. Цитовані фрагменти творів на момент використання не можуть
бути замінені альтернативними аналогами, що не охороняються авторським правом,
і відповідають критеріям добросовісного використання і чесного використання.
Усі права захищені. Повне або часткове копіювання матеріалів заборонене.
Узгодження використання творів або їх фрагментів здійснюється з авторами і
правовласниками. Погоджене використання матеріалів можливе тільки якщо
вказано джерело.
Відповідальність за несанкціоноване копіювання і комерційне використання
матеріалів визначається чинним законодавством України.

More Related Content

What's hot

Урок 51. Встановлення параметрів сторінки. Друкування електронної таблиці. Пр...
Урок 51. Встановлення параметрів сторінки. Друкування електронної таблиці. Пр...Урок 51. Встановлення параметрів сторінки. Друкування електронної таблиці. Пр...
Урок 51. Встановлення параметрів сторінки. Друкування електронної таблиці. Пр...Василь Тереховський
 
Інтеграл та його застосування
Інтеграл та його застосуванняІнтеграл та його застосування
Інтеграл та його застосуванняrussoua
 
Основні етапи розв'язування задач із використанням комп'ютера
Основні етапи розв'язування задач із використанням комп'ютераОсновні етапи розв'язування задач із використанням комп'ютера
Основні етапи розв'язування задач із використанням комп'ютераNuta1910
 
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.VsimPPT
 
Вектори та їх властивості
Вектори та їх властивостіВектори та їх властивості
Вектори та їх властивостіFormula.co.ua
 
Етапи побудови інформаційної моделі
Етапи побудови інформаційної моделіЕтапи побудови інформаційної моделі
Етапи побудови інформаційної моделіal12309
 
перетворення графіків функцій
перетворення графіків функційперетворення графіків функцій
перетворення графіків функційNatali Ivanova
 

What's hot (11)

Урок 51. Встановлення параметрів сторінки. Друкування електронної таблиці. Пр...
Урок 51. Встановлення параметрів сторінки. Друкування електронної таблиці. Пр...Урок 51. Встановлення параметрів сторінки. Друкування електронної таблиці. Пр...
Урок 51. Встановлення параметрів сторінки. Друкування електронної таблиці. Пр...
 
4 клас урок 24 середовище виконання алгоритмів скретч
4 клас урок 24 середовище виконання алгоритмів скретч4 клас урок 24 середовище виконання алгоритмів скретч
4 клас урок 24 середовище виконання алгоритмів скретч
 
Jaringan Multimedia
Jaringan MultimediaJaringan Multimedia
Jaringan Multimedia
 
Інтеграл та його застосування
Інтеграл та його застосуванняІнтеграл та його застосування
Інтеграл та його застосування
 
Основні етапи розв'язування задач із використанням комп'ютера
Основні етапи розв'язування задач із використанням комп'ютераОсновні етапи розв'язування задач із використанням комп'ютера
Основні етапи розв'язування задач із використанням комп'ютера
 
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
 
Вектори та їх властивості
Вектори та їх властивостіВектори та їх властивості
Вектори та їх властивості
 
MAKALAH FILSAFAT Teknologi.pptx
MAKALAH FILSAFAT Teknologi.pptxMAKALAH FILSAFAT Teknologi.pptx
MAKALAH FILSAFAT Teknologi.pptx
 
Етапи побудови інформаційної моделі
Етапи побудови інформаційної моделіЕтапи побудови інформаційної моделі
Етапи побудови інформаційної моделі
 
Підсумковий урок з інформатики_презентація.docx
Підсумковий урок з інформатики_презентація.docxПідсумковий урок з інформатики_презентація.docx
Підсумковий урок з інформатики_презентація.docx
 
перетворення графіків функцій
перетворення графіків функційперетворення графіків функцій
перетворення графіків функцій
 

Similar to Mka python jr-urok_07_ua_1563258932

Mka python jr-urok_04_ua_1563258855
Mka python jr-urok_04_ua_1563258855Mka python jr-urok_04_ua_1563258855
Mka python jr-urok_04_ua_1563258855PavloTsiura
 
Mka python jr-urok_03_ua_1563258828
Mka python jr-urok_03_ua_1563258828Mka python jr-urok_03_ua_1563258828
Mka python jr-urok_03_ua_1563258828PavloTsiura
 
Algebra 9-klas-tarasenkova-2017
Algebra 9-klas-tarasenkova-2017Algebra 9-klas-tarasenkova-2017
Algebra 9-klas-tarasenkova-2017kreidaros1
 
Підручник Математика 4 клас С. П. Логачевська, Т. А. Логачевська (2021 рік) Ч...
Підручник Математика 4 клас С. П. Логачевська, Т. А. Логачевська (2021 рік) Ч...Підручник Математика 4 клас С. П. Логачевська, Т. А. Логачевська (2021 рік) Ч...
Підручник Математика 4 клас С. П. Логачевська, Т. А. Логачевська (2021 рік) Ч...12Балів ГДЗ
 
Matematyka 4-klas-lohachevska-2021-2
Matematyka 4-klas-lohachevska-2021-2Matematyka 4-klas-lohachevska-2021-2
Matematyka 4-klas-lohachevska-2021-2kreidaros1
 
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуінформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуШкола №7 Миргород
 
Учень, як вчений
Учень, як вченийУчень, як вчений
Учень, як вченийCveldulf
 
Mka python jr-urok_05_ua_1563258882
Mka python jr-urok_05_ua_1563258882Mka python jr-urok_05_ua_1563258882
Mka python jr-urok_05_ua_1563258882PavloTsiura
 
конспект урока з математики для 5а класа
конспект урока з математики для 5а класаконспект урока з математики для 5а класа
конспект урока з математики для 5а класаVasileUrsaki
 
Урок-гра:Порівняння чисел
Урок-гра:Порівняння чиселУрок-гра:Порівняння чисел
Урок-гра:Порівняння чиселsveta7940
 

Similar to Mka python jr-urok_07_ua_1563258932 (20)

Mka python jr-urok_04_ua_1563258855
Mka python jr-urok_04_ua_1563258855Mka python jr-urok_04_ua_1563258855
Mka python jr-urok_04_ua_1563258855
 
Mka python jr-urok_03_ua_1563258828
Mka python jr-urok_03_ua_1563258828Mka python jr-urok_03_ua_1563258828
Mka python jr-urok_03_ua_1563258828
 
Povtor 7 8kl
Povtor 7 8klPovtor 7 8kl
Povtor 7 8kl
 
9
99
9
 
Algebra 9-klas-tarasenkova-2017
Algebra 9-klas-tarasenkova-2017Algebra 9-klas-tarasenkova-2017
Algebra 9-klas-tarasenkova-2017
 
9 klas algebra_tarasenkova_2017
9 klas algebra_tarasenkova_20179 klas algebra_tarasenkova_2017
9 klas algebra_tarasenkova_2017
 
7
77
7
 
25
2525
25
 
5971 789623
5971 7896235971 789623
5971 789623
 
Підручник Математика 4 клас С. П. Логачевська, Т. А. Логачевська (2021 рік) Ч...
Підручник Математика 4 клас С. П. Логачевська, Т. А. Логачевська (2021 рік) Ч...Підручник Математика 4 клас С. П. Логачевська, Т. А. Логачевська (2021 рік) Ч...
Підручник Математика 4 клас С. П. Логачевська, Т. А. Логачевська (2021 рік) Ч...
 
Matematyka 4-klas-lohachevska-2021-2
Matematyka 4-klas-lohachevska-2021-2Matematyka 4-klas-lohachevska-2021-2
Matematyka 4-klas-lohachevska-2021-2
 
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листкуінформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
інформатика алгор та прогр по підручнику верлань 2 стор на 1 листку
 
Учень, як вчений
Учень, як вченийУчень, як вчений
Учень, як вчений
 
Mka python jr-urok_05_ua_1563258882
Mka python jr-urok_05_ua_1563258882Mka python jr-urok_05_ua_1563258882
Mka python jr-urok_05_ua_1563258882
 
конспект урока з математики для 5а класа
конспект урока з математики для 5а класаконспект урока з математики для 5а класа
конспект урока з математики для 5а класа
 
Урок-гра:Порівняння чисел
Урок-гра:Порівняння чиселУрок-гра:Порівняння чисел
Урок-гра:Порівняння чисел
 
Lecture 07 swift
Lecture 07 swiftLecture 07 swift
Lecture 07 swift
 
Less35
Less35Less35
Less35
 
Less36
Less36Less36
Less36
 
Less37
Less37Less37
Less37
 

Recently uploaded

Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класkrementsova09nadya
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»tetiana1958
 
Презентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxПрезентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxOlgaDidenko6
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяAdriana Himinets
 
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості  та дозвілля для дітейpptxБібліотека – розвиток дитячої творчості  та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptxssuserc301ed1
 
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptssuser59e649
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...JurgenstiX
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняAdriana Himinets
 
Бомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяБомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяssuser0a4f48
 
атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfатестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfhome
 
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfЗастосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfssuser15a891
 
Іваніщук Надія Вікторівна атестація .pdf
Іваніщук Надія Вікторівна атестація  .pdfІваніщук Надія Вікторівна атестація  .pdf
Іваніщук Надія Вікторівна атестація .pdfhome
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfssuser54595a
 

Recently uploaded (14)

Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 клас
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
 
Презентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxПрезентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptx
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. Біографія
 
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості  та дозвілля для дітейpptxБібліотека – розвиток дитячої творчості  та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
 
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
 
Віртуальна виставка нових надходжень 2-24.pptx
Віртуальна виставка нових надходжень 2-24.pptxВіртуальна виставка нових надходжень 2-24.pptx
Віртуальна виставка нових надходжень 2-24.pptx
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповідання
 
Бомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяБомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентація
 
атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfатестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
 
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfЗастосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
 
Іваніщук Надія Вікторівна атестація .pdf
Іваніщук Надія Вікторівна атестація  .pdfІваніщук Надія Вікторівна атестація  .pdf
Іваніщук Надія Вікторівна атестація .pdf
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
 

Mka python jr-urok_07_ua_1563258932

  • 1.
  • 2. Урок № 7 Рядки і символи ЗМІСТ Рядки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Робота з рядками. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Індексація рядків. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Методи рядків. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Метод find і rfind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Метод replace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Метод count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Методи рядків. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Зрізи рядків. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Ознайомлення з модулем string. . . . . . . . . . . . . . . . 16
  • 3. Рядки Як ви вже знаєте, у багатьох створених програмах ми використовували рядки. Давайте докладніше з’ясуємо, що ж це таке насправді! Мова Python вважає рядком все, що знаходиться всередині лапок. Наприклад, якщо помістити цей текст в лапки, він також стане рядком для Python (рис. 1). З точки зору комп’ютера, весь текст – це набір сим- волів. У кожного символа є свої код. Різний код та у різних за регістром символів, це потрібно враховува- ти, коли ви заходите на сайти. Наприклад, логін Alex і alex належатимуть абсолютно різним користувачам. Все тому, що велика буква представлена одним кодом, а ма- ленька – зовсім іншим, тому комп’ютер сприймає їх як два різні символи. Рисунок 1 3 Рядки і символи
  • 4. Якщо говорити про рядки, то це – послідовність різ- них символів. Для написання деяких програм просто необхідно вміти працювати з рядками. Давайте ще раз подивимося на приклад рядків з попереднього уроку: s = "Guess my number" print(s) Іноді потрібно розбити один рядок на кілька, напри- клад, коли потрібно помістити багато тексту всередині лапок. Такий запис ніяк не вплине на результат роботи функції print(), але дозволить більш компактно роз- містити код. Спершу поставимо символ , а потім вже виконаємо перенесення тексту: s = "Hello! This is my new game Guess my number" print(s) # Hello! This is my new game Guess my number Робота з рядками Як ви пам’ятаєте, якщо потрібно виконати перене- сення рядка, ми використовуємо строковий літерал n. Щоб додати табуляцію перед текстом, слід додати літе- рал t: print("Start:ntstringntstringntstringnEnd") 4 Урок № 7
  • 5. Конкатенація (додавання) застосовується для з’єд- нання двох рядків і реалізується за допомогою знаку +: s1 = "Hello" s2 = "World" print(s1 + s2) # HelloWorld Дублювання рядка може знадобитися, коли потріб- но продублювати будь-який текст або набір символів певну кількість разів: s1 = "Hello" print(s1 * 3) # HelloHelloHello Довжина рядка визначається за допомогою функції len(). Ця функція може знадобитися у найрізноманіт- ніших завданнях. Припустимо, ми пропонуємо корис- тувачеві ввести код з шести символів, а потім перевіря- ємо, чи увів він достатню кількість символів. Приклад запису такої функції виглядає наступним чином: s1 = "Hello" print(len(s1)) # 5 Індексація рядків Оскільки рядки – це набір символів, то з будь-якого рядка можна отримати конкретний символ. Для цього потрібно лише знати його індекс (порядковий номер). Важливо пам’ятати, що індекс першого елемента завжди дорівнює нулю. 5 Рядки і символи
  • 6. Давайте розглянемо приклад використання індек- сів: s = "Hello World" print("symbol [0]: " + str(s[0])) # H print("symbol [6]: " + str(s[6])) # W В даному прикладі створюється рядок s, а потім виводяться символи з індексами s[0] і [6]. Майте на увазі, що функція len() поверне кількість символів в рядку, але індекс останнього елемента буде на одиницю меншим. Для даного рядка допустимі індекси від 0 до 10, більше значення викличе помилку. Наприклад, s[11] виконається з помилкою: s = "Hello World" i = len(s) # i = 11 print(s[i]) # s[11] = Error В результаті в консоль буде виведено повідомлення типу IndexError: string index out of range. Через цю особливість, будьте більш уважні під час звертання до елементів рядка за індексом. 6 Урок № 7
  • 7. Методи рядків Часто з рядками потрібно виконувати різні шаблон- ні дії (заміну букв, пошук і т. п.). Саме для таких завдань у багатьох мовах програмування є заготовлений набір методів. Метод – це функція, яка застосовується до об’єкта, в даному випадку – до рядка. У мові Python достатньо ба- гато різних методів і запам’ятати призначення кожного з них буде непростим завданням. У зв’язку з цим, завжди звертайтеся до документації (https://docs.python.org/3.6/ library/stdtypes.html#string-methods). Розглянемо деякі методи на прикладі їхньої роботи в коді. Синтаксис методу: імя_об›екта.імя_метода (параметри) Уявіть, ми виявили, що символи представлені в різ- них регістрах, що робить нашу програму особливо не- привабливою. Чи не шукати ж нам усі рядки в коді і ко- ригувати кожен з них! Для цього використовуємо один з наведених нижче методів: s = "guEss mY numBer" s.capitalize() # Guess my number s.title() # Guess My Number s.upper() # GUESS MY NUMBER s.lower() # guess my number 7 Рядки і символи
  • 8. Метод find і rfind Одне з основних завдань при роботі з рядками – по- шук ключових слів. Метод find застосовується до рядка і виконує пошук підрядка, який передається як параметр, тобто в дужках find(""). В результаті функція повертає індекс першого входження шуканого підрядка. Якщо ж такий підрядок не знайдено, метод повертає значення, яке дорівнює -1. Не лякайтеся, якщо таке формулювання здалося вам складним. З’ясуємо принцип використання find на при- кладі, і ви відразу зрозумієте що до чого: s = "message" s.find("m")) # 0 s.find("s") # 2 s.find("w") # -1 Метод rfind працює за тим же принципом, тільки повертає індекс останнього входження підрядка, тобто виконує пошук справа наліво: s = "message" s.rfind("m") # 0 s.rfind("s") # 3 s.rfind("w") # -1 Різницю в роботі цих методів можна побачити, по- глянувши на третій рядок, де виконується пошук сим- вола s. У першому випадку було знайдено перше вхо- дження цього символу з індексом 2, а в другому випадку символ s був знайдений в позиції 3. 8 Урок № 7
  • 9. 9 Рядки і символи Метод replace Метод replace(old, new) повертає рядок, в яко- му будуть замінені всі входження old на підрядок new. Метод може приймати два параметри replace(old, new) або три replace(old, new, num). Як ви вже мог- ли здогадатися, old – це текст, який будемо замінювати, new – текст, на який будемо замінювати, num – кількість зроблених замін. s = "best regards best" s.replace("best", "kind") # kind regards kind s.replace("best", "kind", 1) # kind regards best Метод count Порахувати кількість входжень підрядка в рядок до- поможе метод count: s = "Hello World" s.count("l")) # 3 Методи рядків Перейдемо до вивчення методів, які дозволять пере- вірити рядок за різними критеріями. Це може бути пе- ревірка на наявність букв, цифр і навіть регістрів. Роз- беремося докладніше, як це працює. ■■ Метод isnumeric() перевіряє, чи є в рядку цифри. Якщо цифра є, поверне true, якщо ні – false.
  • 10. 10 Урок № 7 ■■ Метод isupper() дозволяє дізнатися, чи є в рядку літери у верхньому регістрі. Як ви вже могли здога- датися, повернеться true, якщо такі будуть знайдені. ■■ Метод islower(), в свою чергу, використовується для нижнього регістра. Працює за аналогією з описом вище, повертає true або false. ■■ Метод isalpha() поверне true, якщо всі символи в рядку будуть буквами. Приклад використання методів: password = "qw@E1r" print("nTry isalpha: ") for symbol in password: alpha = symbol.isalpha() print(f"{symbol} - {alpha}") if (not alpha) and (symbol == "@"): print(f"It is {symbol}") Результат виконання коду буде наступний: Try isalpha: q - True w - True @ - False It is @ E - True 1 - False r - True
  • 11. Рисунок 2 11 Рядки і символи Зрізи рядків Зріз (slice) – це витяг з рядка одного символа або су- купності. Можна провести аналогію з відсіканням пев- ної частини тексту. Оператор вилучення зрізу має вигляд [I:j], де i – початок зрізу, а j – кінець. Цікаво те, що символ з індексом j у зріз не входить. Можна також задати крок [I:j:step] зрізу. За замовчуванням перший сим- вол  –  це початок рядка, відповідно, він дорівнює 0, а другий дорівнює довжині рядка (рис. 2). s = "message" print(s[0:]) # message print(s[2:5]) # ssa print(s[2:-1]) # ssag print(s[1:6:2]) # esg print(s[:5]) # messa print(s[:]) # message
  • 12. Рисунок 3 12 Урок № 7 Напишемо програму для створення надійного паро- ля. Здавалося б, немає нічого простішого, ніж створен- ня надійного пароля. Однак часто користувачі банально не хочуть придумувати складний пароль, використову- ють один і той же ключ для різних сервісів або вводять прості стандартні слова, піддаючи ризику свій обліко- вий запис (рис. 3). Для багатьох не буде секретом, що оптимальна дов- жина пароля повинна бути близько 15-ти символів, а складатися він повинен з малих, великих літер і симво- лів. Також пароль не повинен містити популярних ком- бінацій, наприклад: admin, qwerty, 12345, password і т. д. До того ж використання одного пароля, навіть якщо він надійний, є поганою практикою. Існує ряд ресурсів, за допомогою яких можна при- близно розрахувати, за який час може бути зламаний пароль, наприклад How Secure Is My Password? (https:// howsecureismypassword.net).
  • 13. Рисунок 4-5 13 Рядки і символи Давайте за допомогою даного сервісу протестуємо різні комбінації символів: qwerty і q1W2e#R4t%y^. Як видно на зображеннях, другий пароль виявився більш складний і надійний (рис. 4-5). Варто зауважити, що вводити справжні паролі в по- дібні форми не рекомендується. Сервіс наведено лише для ознайомлення і створення загального розуміння того, яка комбінація символів вважається особливо на- дійною.
  • 14. 14 Урок № 7 Напишемо програму, яка буде генерувати складні паролі: Лістинг 1 import random s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" s2 = "0123456789" s3 = "~!@#$%^&*()_+{}[]:/" s = s1.upper() + s1.lower() + s2 + s3 password = "" for i in range(15): p = random.choice(s) password = password + p print(f"New password [{i}]: {password}") Давайте з’ясуємо, що відбувається в програмі. Спер- шу імпортували модуль import random. Потім створили три змінні s1, s2, s3, в які записа- ли всі можливі символи, які будуть використовуватися в процесі генерації пароля: s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" s2 = "0123456789" s3 = "~!@#$%^&*()_+{}[]:/" Потім нам потрібно буде отримати абсолютно ви- падкове значення – чи то цифру, букву або символ.
  • 15. 15 Рядки і символи Для цього створюємо змінну s і, немов у коробку, складаємо в неї всі рядки. Таким чином, отримаємо на- ступний запис: s = s1.upper() + s1.lower() + s2 + s3 # s = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm nopqrstuvwxyz0123456789~!@#$%^&*()_+{}[]:/ Чудово! У нас є рядок.Тепер саме час згенерувати пароль. У циклі for з рядка s з кожним проходом отри- муємо випадкове значення random.choice(s). Потім додаємо це значення до змінної password. За допомогою послідовного виведення рядків ми можемо відобразити результат в консоль: for i in range(15): p = random.choice(s) print(p, end="") В результаті роботи програми сформується пароль з випадкових букв, цифр і символів: New password [14]: qH3/0)D8_vpATV7 New password [14]: L)l@+Wd*JXsJZ)8 New password [14]: y7nT:k*&K@RgO$k Тепер ви можете генерувати надійні паролі для своїх облікових записів за допомогою створеної програми.
  • 16. 16 Урок № 7 Ознайомлення з модулем string У мові Python є модуль import string, який може значно полегшити генерацію пароля, дозволяючи отри- мати все той же набір букв і символів, не прописуючи їх вручну. Повернемося до Лістингу 1 і зосередимо увагу на та- кому запису: s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" s2 = "0123456789" s3 = "~!@#$%^&*()_+{}[]:/" s = s1.upper() + s1.lower() + s2 + s3 Замість нього можна використовувати константи з модуля string: # string.ascii_lowercase + string.ascii_uppercase s1 = string.ascii_letters s2 = string.digits s3 = string.punctuation s = s1 + s2 + s3 Таким чином, результат при використанні модуля string жодним чином не відрізнятиметься від резуль- тату, отриманого в Лістингу 1. Відповідно, у своїх про- грамах ви можете використовувати будь-який зручний для вас варіант.
  • 17.
  • 18. Урок № 7 Рядки і символи © Комп'ютерна Академiя ШАГ www.itstep.org Усі права на фото-, аудіо- і відеотвори, що охороняються авторським правом і фраг- менти яких використані в матеріалі, належать їх законним власникам. Фрагменти творів використовуються в ілюстративних цілях в обсязі, виправданому поставле- ним завданням, у рамках учбового процесу і в учбових цілях, відповідно до ст. 1274 ч. 4 ГК РФ і ст. 21 і 23 Закони України «Про авторське право і суміжні права». Обсяг і спосіб цитованих творів відповідає прийнятим нормам, не завдає збитку нормально- му використанню об’єктів авторського права і не обмежує законні інтереси автора і правовласників. Цитовані фрагменти творів на момент використання не можуть бути замінені альтернативними аналогами, що не охороняються авторським правом, і відповідають критеріям добросовісного використання і чесного використання. Усі права захищені. Повне або часткове копіювання матеріалів заборонене. Узгодження використання творів або їх фрагментів здійснюється з авторами і правовласниками. Погоджене використання матеріалів можливе тільки якщо вказано джерело. Відповідальність за несанкціоноване копіювання і комерційне використання матеріалів визначається чинним законодавством України.