Змінні

Змінні призначені для зберігання даних. Назва змінної в Python повинна починатися з алфавітного символу або символу підкреслення і може містити алфавітно-цифрові символи і знак підкреслення. Крім того, назва змінної не повинна співпадати з назвою ключових слів мови Python. Ключових слів не так багато, їх легко запам’ятати:

1    False       await       else        import      pass
2    None        break       except      in          raise
3    True        class       finally     is          return
4    and         continue    for         lambda      try
5    as          def         from        nonlocal    while
6    assert      del         global      not         with
7    async       elif        if          or          yield

Наприклад, створимо таку змінну:

1    name = "Tom"

Тут визначено змінну name, яка зберігає рядок “Tom”. У Python застосовується два типи найменування змінних: camel case і underscore notation. Camel case означає, що кожне нове підсліво в найменуванні змінної починається з великої літери. Наприклад:

1    userName = "Tom"

Underscore notation передбачає, що підслова в найменуванні змінної розділяються знаком підкреслення. Наприклад:

1    user_name = "Tom"

Також необхідно враховувати реєстрозалежність, тому змінні name і Name будуть представляти різні об’єкти.

1    #Дві різні змінні
2    name = Tom
3    Name = Tom

Визначивши змінну, ми можемо використовувати її в програмі. Наприклад, спробувати вивести її вміст на консоль за допомогою вбудованої функції print:

1    name = Tom #Визначення перемінної name
2    print(name) #Виведення значення перемінної name на консоль

Наприклад, визначення та застосування змінної в середовищі PyCharm:

Малюнок 1!

Відмінною рисою змінної є те, що ми можемо змінювати її значення упродовж роботи програми:

1    name = "Tom"    # змінна name рівна значенню "Tom"
2    print(name)     # виводить: Tom
3    name = "Bob"    # змінюємо значення змінної на "Bob"
4    print(name)     # виводить: Bob

Типи даних

Змінна зберігає дані одного з типів даних. У Python існує безліч різних типів даних. В даному випадку розглянемо лише базові типи: bool, int, float, complex і str.

Логічні значення

Тип bool репрезентує два логічних значення: True (вірно, істина) чи False (невірно, фальш). Значення True слугує для того, щоб показати, що щось істинне. Значення False, навпаки, показує, що щось невірно. Приклад змінних такого типу:

1    isMarried = false
2    print(isMarried) #False
3
4    isAlive = true
5    print(isAlive)  #True

Цілі числа

Тип int є цілим числом, наприклад, 1, 4, 8, 50. Приклад:

1    age = 21
2    print("Вік" : age)  # Вік: 21
3
4    count = 15
5    print("Кількість", count) # Кількість: 15

За замовчуванням стандартні числа розцінюються як числа у десятковій системі. Але Python також підтримує числа у двійковій, вісімковій та шістнадцятковій системах. Для вказівки на те, що число належить до двійкової системи, перед числом ставиться префікс 0b:

1    a = 0b11
2    b = 0b1011
3    c = 0b100001
4    print(a)    # 3 в десятковій системі
5    print(b)    # 11 в десятковій системі
6    print(c)    # 33 в десятковій системі

Для вказівки на те, що число належить до вісімкової системи, перед числом ставиться префікс 0o:

1    a = 0o7
2    b = 0o11
3    c = 0o17
4    print(a)    # 7 в десятковій системі
5    print(b)    # 9 в десятковій системі
6    print(c)    # 15 в десятковій системі

Для вказівки на те, що число належить до шістнадцяткової системи, перед числом ставиться префікс 0x:

1    a = 0x0A
2    b = 0xFF
3    c = 0xA1
4    print(a)    # 10 в десятковій системі
5    print(b)    # 255 в десятковій системі
6    print(c)    # 161 в десятковій системі

Варто зазначити, що в якій би системі ми не передавали число в функцію print для виведення на консоль, воно за замовчуванням буде виводитися в десятковій системі.

Числа з плаваючою крапкою

Тип float є числом з плаваючою крапкою, наприклад, 1.2 або 34.76. У якості роздільника цілої та дробової частин використовується крапка.

1    height = 1.68
2    pi = 3.14
3    weight = 68.
4    print(height)   # 1.68
5    print(pi)       # 3.14
6    print(weight)   # 68.0

Число з плаваючою точкою можна визначати в експоненційному записі:

1    x = 3.9e3
2    print(x)    # 3900.0
3
4    x = 3.9e-3
5    print(x)    # 0.0039

Число float може мати лише 18 значущих символів. Так, у цьому випадку використовуються лише два символи – 3.9. І якщо число занадто велике чи занадто мале, ми можемо записувати число у подібній нотації, використовуючи експоненту. Число після експоненти вказує ступінь числа 10, на яке потрібно помножити основне число - 3.9.

Комплексні числа

Тип complex представляє комплексні числа у форматі речова_частина+уявна_частинаj - після уявної частини вказується суфікс j

1    complexNumber = 1+2j
2    print(complexNumber)    # (1+2j)

Рядки

Тип str представляє рядки. Рядок є послідовністю символів, що укладена в одинарні або подвійні лапки, наприклад “hello” та ‘hello’. У Python 3.x рядки є набором символів у кодуванні Unicode

1    message = "Hello World!"
2    print(message)  # Hello World!
3
4    name = 'Tom'
5    print(name)     # Tom

При цьому якщо рядок має багато символів, його можна розбити на частини і розмістити їх на різних рядках коду. У цьому випадку весь рядок береться у круглі дужки, а його окремі частини – у лапки:

1    text = ("Laudate omnes gentes laudate"
2            "Magnificat in secula")
3    print(text)

Якщо ми хочемо визначити багаторядковий текст, такий текст береться у потрійні подвійні чи одинарні лапки:

1    '''
2    Цей коментар
3    '''
4    text = '''Laudate ones gentes laudate
5    Magnificat insecula
6    Et anima mea laudate
7    Magnificat in secula
8    '''
9    print(text)

При використанні потрійних одинарних лапок не варто плутати їх із коментарями: якщо текст у потрійних одинарних лапках присвоюється змінною, то це рядок, а не коментар.

Керуючі послідовності у рядку

Рядок може містити низку спеціальних символів - послідовностей, що керують. Деякі з них:

: дозволяє додати внутрішні рядки слеш

': дозволяє додати всередину рядка одинарну лапку

": дозволяє додати всередину рядка подвійну лапку

\n: дозволяє здійснити перехід на новий рядок

\t: додає табуляцію (4 відступи)

Застосуємо кілька послідовностей:

1    text = "Message:\n\"Hello World\""
2    print(text)

Консольне виведення програми:

Message:
"Hello World"

Хоча подібні послідовності можуть нам допомогти в деяких справах, наприклад, помістити в рядок лапку, зробити табуляцію, перенесення на інший рядок. Але вони також можуть заважати. Наприклад:

1    path = "C:\python\name.txt
2    print(path)

Тут змінна path містить певний шлях до файлу. Однак усередині рядка зустрічаються символи "\n", які будуть інтерпретовані як послідовність, що керує. Так, ми отримаємо наступний консольний висновок:

C:\python
ame.txt

Щоб уникнути подібної ситуації, перед рядком ставиться символ r

1    path = r"C:\python\name.txt"
2    print(path)

Вставка значення в рядок

Python дозволяє вбудовувати в рядок значення інших змінних. Для цього всередині рядка змінні розміщуються у фігурних дужках {}, а перед усім рядком ставиться символ f:

1    userName = "Tom"
2    userAge = 37
3    user = f"name: {userName} age {userAge}"
4    print(user)     # name: Tom age: 37

У цьому випадку на місце {userName} вставлятиметься змінна userName. Аналогічно замість {userAge} буде вставлятися значення змінної userAge.

Динамічна типізація

Python є мовою з динамічною типізацією. А це означає, що змінна не прив’язана жорстко до певного типу. Тип змінної визначається виходячи із значення, яке їй присвоюється. Так, при присвоєнні рядка в подвійних чи одинарних лапках змінна має тип str. Під час присвоєння цілого числа Python автоматично визначає тип змінної як int. Щоб визначити змінну як об’єкт float, їй надається дробове число, в якому роздільником цілої та дробової частини є крапка.

При цьому в процесі роботи програми ми можемо змінити тип змінної, надавши їй значення іншого типу:

1    userId = "abc"  # тип str
2    print(useId)
3
4    userId = 234    # тип int
5    print(userId)

За допомогою вбудованої функції type() динамічно можна дізнатися про поточний тип змінної:

1    userId = "abc"  # тип str
2    print(type(userId)) # <class 'str'>
3
4    userId = 234    # тип int
5    print(type(userId))     # <class 'int'>