Pядки
Вважають, що
програмісти добре знаються в математиці, тому що працюють з числами. Насправді,
більшість програмістів працюють з текстовими
рядками набагато частіше, ніж з числами.
Завдяки підтримці
стандарту Unicode Python
3 може містити символи будь-якої мови світу, а також багато інших
символів. Необхідність роботи із стандартом Unicode була однією з
причин зміни Python 2.
Створення рядків і функція print
|
Python гілки 2*
дозволяє брати або не брати аргументи функціїї print в дужки. Для гілки 3.*
дужки обов'язкові.
Будь-яка
послідовність символів, укладена в лапки, в Python вважається
рядком, при цьому рядки можуть бути укладені як в одинарні,
так і в подвійні лапки:
>>> 'This is a string.' 'This is a string.'
>>> "This is also a string." 'This is also a string.'
Навіщо мати два види
лапок? Основна ідея полягає в тому, що ви можете створювати рядки, що містять
лапки або апостроф. Тобто, усередині одинарних лапок можна розташувати подвійні
і навпаки:
Можна також використовувати три одинарні (''')
або три подвійні лапки ("""):
>>> '''Yes''' 'Yes'
>>>
"""No""" 'No'
Щоб змінити
розділювач (за замовчуванянм, це пропуск) між елементами, які виводить функція print(),
треба використати її необов’язковий параметр sep і вказати
розділювач:
>>> print 'Python', 'is', 'my',
'favorite', 'language!',sep=', 'Python,is,my,favorite,language!
Поглянемо на використання необов’язкового параметра end функції print.
Для прикладу, запустимо наступну програму, яка збережена у окремому
файлі з певним ім’ям:
print 'Hello' print('World')
Результат виведення буде таким:
Hello World
Рядки відображаються на екрані на окремих
рядках виведення, оскільки функція print() автоматично додає символи
нового рядка \n в кінець рядка, який їй передається. За необхідністю,
замість символа нового рядка \n можна використовувати інший рядок,
вказаний з допомогою параметра end.
Наприклад для програми:
print'Hello', end='' print'World'
виведення буде таким:
HelloWorld
В даному випадку текст виводиться в один
рядок, тому що відсутній символ нового рядка \n після рядка 'Hello'.
Замість символа нового рядка \n виводиться порожній рядок ''.
Цей прийом буде в нагоді в тих випадках, коли необхідно відмінити використання
символа нового рядка \n, який автоматично додається в кінці кожного
виведення за допомогою функції print.
Згаданий вище, порожній рядок можна
утворити за допомогою різних лапок:
>>> '' ''
>>> "" ''
>>> """""" ''
>>> '''''' ''
Необхідність створення порожніх рядків
виникає, наприклад, при утворенні рядків з інших рядків:
>>> score = 55 >>> base = ''
>>> base += 'checking
account: '
>>> base += str(score)
>>> base 'checking account: 55'
Розділення рядка:
функція split()
Функція split() розбиває
рядок на окремі рядки і розміщує їх у списку.
Використовуючи цю функції, необхідно
вказати символ-розділювач (у нашому прикладі ,):
>>> dolist = 'pass algorithm, write a program, test program'
>>> dolist.split(',') ['pass algorithm', ' write a program', '
test program']
Якщо ви не вкажете символ-розділювач,
функція split() буде використовувати будь-яку послідовність
пропусків, а також символи нового рядка і табуляцію:
>>> dolist.split() ['pass', 'algorithm,', 'write', 'a',
'program,', 'test', 'program']
Для виклику функції split(), навіть без аргументів, все одно
потрібно додавати круглі дужки - саме так Python дізнається, що
викликається функція.
|
Об’єднання рядків:
функція join()
Функція join() є протилежністю
функції split().
Функція join() об’єднує
список рядків в один рядок.
|
Виклик функції
виглядає трохи заплутано, оскільки спочатку ви вказуєте рядок, який об’єднує
інші, а потім - список рядків для об’єднання: рядок.join(список рядків). В
наступному прикладі об’єднаємо кілька імен в список, розділений комами і
пропусками:
>>> crypto_list = ['Jumanji: Welcome to the Jungle', 'The Lost
City of Z', 'Justice League']
>>> crypto_string = ', '.join(crypto_list)
>>> print 'Browse films:', crypto_string
Browse films: Jumanji: Welcome to the Jungle, The Lost City of Z, Justice
League
Регістр і вирівнювання
Розглянемо ще кілька прикладів
використання вбудованих у Python функцій для роботи з рядками.
Створимо рядкову змінну з таким вмістом:
>>> setup = 'beetles buzzing over cherries...'
Видалимо символи . з обох кінців
рядка за допомогою функції strip():
Функції rstrip() і lstrip() видаляють
пропуски, а також символи нового рядка і табуляцію відповідно в кінці і на
початку рядка.
>>> setup.strip('.') 'beetles
buzzing over cherries' >>> setup 'beetles buzzing over cherries...'
Оскільки рядки незмінні, рядок setup не
змінюється. Відбувається все так: отримують значення змінної setup,
виконують над цим значенням деякі дії, а потім повертають результат як новий
рядок.
Напишемо всі слова з великої літери за
допомогою функції title():
>>> setup.title() 'Beetles Buzzing Over Cherries...'
Напишемо перше слово з великої літери, а
всі інші символи - малими літерами за допомогою функції capitalize():
>>> setup.capitalize() 'Beetles buzzing over cherries...'
Напишемо всі слова великими літерами за
допомогою функції upper():
>>> setup.upper() 'BEETLES BUZZING OVER CHERRIES...'
Напишемо всі слова малими літерами за
допомогою функції lower():
>>> setup.lower() 'beetles buzzing over cherries...'
Змінимо регістр літер за допомогою
функції swapcase():
>>> setup = 'Beetles buzzing over Cherries...' >>>
setup.swapcase() 'bEETLES BUZZING OVER cHERRIES...'
Для вирівнювання рядків використовуються
кількість місць для рядка і наступні функції: center(), ljust(), rjust().
Вирівнювання рядка по центру на
проміжку із 40 місць:
>>> setup.center(40) ' beetles buzzing over cherries... '
Вирівнювання рядка за лівим
краєм на проміжку із 40 місць:
>>> setup.ljust(40) 'beetles buzzing over cherries... '
Вирівнювання рядка за правим
краєм на проміжку із 40 місць:
>>> setup.rjust(40) ' beetles buzzing over cherries...'
Заміна символів: функція
replace()
Ви можете
використовувати функцію replace() для
того, щоб замінити один підрядок на інший.
Для цього треба
передати у цю функцію «старий підрядок» (який
треба замінити), «новий підрядок» (яким
треба замінити) і кількість входжень старого підрядка: рядок.replace(старий рядок, новий підрядок, кількість
замін).
Якщо не записувати
останній аргумент (кількість замін),
буде проведена заміна усіх входжень. Наприклад:
>>> language
= 'I told my friend, "Python is my favorite language! I love to program in
Python!"'
>>>
language.replace('Python', 'Ruby') 'I told my friend, "Ruby is my favorite
language! I love to program in Ruby!"'
Введення
даних з клавіатури
Для виконання ряду
програм, зазвичай, потрібна деяка інформація, яку повинен ввести користувач.
Простий приклад: припустимо, користувач хоче дізнатися, чи достатній його вік
для голосування. Програма повинна отримати від користувача значення - його вік;
коли у програми з’являться дані, вона може порівняти їх з віком, що дає право
на голосування, і повідомити результат.
Давайте дізнаємось,
як отримати від користувача вхідні дані, щоб програма могла працювати з ними.
Функція input()
Для отримання вхідних даних у програмах
використовується функція input().
Функція input() призупиняє
виконання програми і чекає, поки користувач введе деякий текст і
натисне Enter. Отримавши введення, Python зберігає
його у змінній, щоб було зручніше працювати з ним.
Кожен раз, коли у
вашій програмі використовується функція input(),
ви повинні включати зрозумілу підказку-текст (наприклад, «Please enter your name: »),
яка точно повідомить користувачеві, яку інформацію від нього хочуть отримати.
Наприклад, для даного фрагменту коду додайте пробіл в кінці підказки (після
двокрапки), щоб відокремити підказку від даних, що вводяться користувачем, і
чітко показати, де повинен вводитися текст:
>>> name = input("Please enter your
name: ") Please enter your name: Alex
>>> print("Hello, " + name +
"!") Hello, Alex!
При використанні функції input() Python інтерпретує всі дані, введенні користувачем, як рядок. У наступному сеансі інтерпретатора програма запитує у
користувача вік:
>>> age = input("How old are you? ") How old are you? 25
>>> age '25'
Користувач вводить
число 25,
але, коли ми запитуємо у Python значення age, виводиться '25' - введене число
в рядковому форматі. Лапки, в яких знаходяться дані, вказують на те, що Python інтерпретує
введення як рядок.
Спроба
використовувати введені дані як число викликає помилку:
Коли ви намагаєтеся
порівняти введені дані з числом, Python видає
помилку, тому що не може порівняти рядок з числом: рядок '25', що зберігається
в age,
порівнюється з числовим значенням 18;
відбувається помилка. Проблему можна вирішити за допомогою функції int(), яка інтерпретує
рядок як числове значення
Немає коментарів:
Дописати коментар