Заняття 2: змінні та прості типи даних Частина 1
Сьогодні в нас буде багато інформації, тому якщо ви не зрозумієте щось, то не хвилюйтесь, майже усе що ми розглянемо сьогодні, ми будемо практикувати на кожному занятті.
Згадуємо що ми зробили минулого разу:
- Ми встановили Lua
- Ми встановили редактор
- Ми створили перший файл, запустили його, і вивели на екран текст, познайомилися з функцією
print()
print англ. [pɹɪnt] - друкувати
** надалі будемо розбирати та вчити англійські терміни, тому що стандартні функції та документація для них зазвичай англійською
Змінні та оператори
Для початку, нам потрібно познайомитися з новим поняттям - змінною. Змінна - це щось, що може змінюватися, тобто ми можемо записати в змінну одне значення, а потім записати в неї інше значення.
Давайте спробуємо створити змінну. Для цього нам потрібно використати оператор присвоєння =. Він виглядає так:
variable = 10
variable англ. [ˈverēəb(ə)l] - змінна*
ми можемо назвати змінну як завгодно, але є деякі правила, які потрібно дотримуватися:
- ім’я змінної може складатися з літер, цифр, і символа
_ - ім’я змінної не може починатися з цифри
- ім’я змінної не може бути ключовим словом, наприклад
print,function,if,then,elseі т.д.
ключові слова ми вивчемо потім, наразі, якщо ви спробуєте використати ключове слово, то ви просто отримаєте помилку
Наприклад
if = 10- помилкаif_ = 10- добре, але не треба так робити1variable = 10- помилка_variable = 10- добре, але підкреслення зазвичай використовують для інших цілей які ми розглянемо пізніше
Час невеличкої практики
Спробуємо створити нову програму в нашому проекті, назвемо її variables.lua і запишемо в неї наступний код:
variable = "Hello World!"
print(variable)
Тада! Ми знов надрукували Hello world, але цього разу ми використали змінну.
Тепер давайте спробуємо змінити значення змінної. Для цього нам потрібно просто присвоїти нове значення змінній:
variable = "Hello World!"
print(variable)
variable = "Hello Lua!"
print(variable)
variable = math.sin(math.pi / 2)
print(variable)
в першому випадку ми помістили в змінну рядок в другому випадку ми помістили в змінну число, а в третьому випадку ми помістили в змінну результат виконання функції math.sin()
завдання 2.1:
- створити змінну зі своїм ім’ям
- створити змінну зі своїм віком
- вивести на екран обидві змінні одна після одної
Оператори
Оператор це така штука, яка виконує якусь дію. Наприклад, оператор присвоєння = виконує дію присвоєння, оператор додавання + виконує дію додавання, оператор віднімання - виконує дію віднімання.
Минулого разу ми використали оператор присвоєння =. Давайте спробуємо використати інші оператори,
і також пробували арифметичні операції.
Те, над чим оператор виконує дію, називається операндом. Наприклад, в виразі 2 + 3 оператор + виконує дію додавання над операндами 2 і 3. Ми цей термін запам’ятаємо
оператори бувають не тільки для чисел, але і для рядків.
Кон-ка-те-на-ці-я, спробуємо сказати це слово вголос. це довге слово, але воно означає просту річ. Якщо не вдалося то кажемо з’єднання
Наприклад, оператор конкатенації ..* виконує дію з’єднання рядків. Давайте спробуємо використати його:
variable = "Hello" .. " " .. "World!"
print(variable)
В цьому прикладі ми об’єднали три строки в одну. Якщо ви запустите цей код, то ви побачите на екрані Hello World!
рядки тут це “Hello” “ “ (пробіл) і “World!”. Якщо ви помітите, то ми використали пробіл між словами, щоб вони не злиплись в одне слово.
Коли ми використовували “режим калькулятора” минулого разу ми використовували аріфметичні оператори. результатом було число яке вийшло в результаті. Але якщо ми використовуємо оператор конкатенації, то результатом буде рядок. Це важливо запам’ятати.
оператор конкатенації англ. concatenation [kənˌkatnˈāSH(ə)n] - з’єднання. тобто ми з’єднуємо дві речі в одну. коли програміст говорить про конкатенацію, він має на увазі з’єднання рядків, а не якихось інших речей.
Завдання 2.2:
- створити змінну зі своїм ім’ям
- створити змінну зі своїм віком
- створити змінну зі своїм містом
- вивести на екран рядок в такому форматі:
Мене звати Ім'я, мені Вік років, я живу в Місто, використовуючі змінні та оператор конкатенації
завдання 2.3:
- використовуючі math.pi та math.sin() вивести на екран результат виконання функції sin для числа pi/2 в такому форматі:
sin(pi/2) = результат, де результат це результат виконання функції sin для числа pi/2. Використовуємо оператор конкатенації.
Типи даних
Тип даних це така штука, яка визначає які значення може містити змінна. Наприклад, змінна типу number може містити тільки числа, а змінна типу string може містити тільки рядки. Якщо ви помітите, то ви вже використовували ці типи даних. Наприклад, змінна variable в нашому прикладі вище містить рядок, тому її тип даних string. А змінна variable в нашому прикладі вище містить число, тому її тип даних number. В lua ми можемо перенастроїти тип даних змінної. Наприклад, ми можемо змінити тип даних змінної variable на string, але цього треба уникати, бо це може призвести до помилок.
Для різних типів даних доступні різні оператори, наприклад, для чисел доступні арифметичні оператори, а для рядків доступний оператор конкатенації.
Тип даних змінної можна дізнатися за допомогою функції type(). Наприклад, якщо ви виконаєте наступний код:
variable = "Hello World!"
print(type(variable))
то ви побачите на екрані string. Це означає, що тип даних змінної variable є string.
string [stɹɪŋ] - рядок, програмісти в Україні дуже часто використовують слово “стрінг”, “стрінгИ”
number [ˈnʌmbə] - число
boolean [ˈbuːliən] - булевий тип даних, це тип даних який може містити тільки два значення:
trueабоfalseВ Україні програмісти часто використовують слова “тру” і “фолс”, та слово “бул” про сам тип даних.
true [truː] - правда
false [fɔːls] - неправда
nil [nɪl] - нічого, це спеціальне значення, яке означає що змінна не містить нічого
З рядками та числами ми вже знайомі, але що таке булевий тип даних? Це тип даних який може містити тільки два значення: true або false. Це значення використовуються для того, щоб зберігати результати логічних операцій. Наприклад, результатом логічної операції “2 більше 1” є true, а результатом логічної операції “2 менше 1” є false.
Числа теж можуть бути булевими. Якщо число дорівнює 0, то воно вважається false, а якщо число не дорівнює 0, то воно вважається true. До цього ми повернемося пізніше.
Логічні операції
Логічні операції це операції, які повертають булевий тип даних. Наприклад, операція “2 більше 1” повертає true, а операція “2 менше 1” повертає false. Ці операції називаються операціями порівняння. В lua доступні наступні операції порівняння:
==- дорівнює~=,!=- не дорівнює>,<- більше, менше>=,<=- більше або дорівнює, менше або дорівнює
Наприклад, якщо ви виконаєте наступний код:
print(2 == 1)
print(2 ~= 1)
print(2 > 1)
print(2 < 1)
print(2 >= 1)
print(2 <= 1)
то ви побачите на екрані:
false
true
true
false
true
спробуйте вивести самі та поясніть результат.
На цьому ми завершуємо заняття. Наступним уроком стане вивчення умовних конструкцій та циклів, і ми створимо першу нашу справжню програму, маленьку текстову гру “Вгадай число”.
Домашнє завдання:
- Створіть змінну
aі присвойте їй значенняtrue. Виведіть значення змінноїaна екран. - Створіть змінну
bі присвойте їй значенняfalse. Виведіть значення змінноїbна екран. - Створіть змінну якій буде присвоєнно значення
a == b. Виведіть значення змінної на екран. - В луа досить багата стандартна бібліотека. крим math є ще і бібліотека string. Виведіть на екран результат виконання функції
string.upper("hello world!"). Що вона робить? Якщо не знаєте, то спробуйте знайти в інтернеті. - Спробуйте виконати наступний код:
variable = "Hello World!"
variable2 = "Hello World"
print(variable > variable2)
- Що він виведе на екран?
- Чому?
- Пограйтеся з різними рядками та розберіться як воно працює.
Підозрілі типи