«Hello World!» — та самая фраза, с которой начинался путь почти каждого, кто пробовал себя в программировании. Существует своего рода традиция, при изучении нового языка программирования писать программу, выводящую каким-либо образом сообщение "Hello, World!". Традиция эта берет начало с 1978 года в книге «Язык программирования Си» Брайана Кернигана и Денниса Ритчи. В случае языка Python, «Hello World!» будет выводиться на экран следующим образом:
(скопируйте и вставьте данную строку кода в интерпретатор Python, нажмите Enter)
print('Hello World!')
Да, дружище, могу поздравить тебя с тем, что ты положил первый кирпич в фундамент изучения программирования!
По статистике, около 80-ти процентов тех, кто начинает заниматься изучением языков программирования, заканчивают именно на этом моменте, уповая на то, что это уже триумф. Но эта логика в корне неверна. Путь познания слишком тернистый, чтобы быть таким простым. Однако не стоит расстраиваться и думать, что добиться успеха в кодинге тебе не по силам. По силам, да ещё как. Наберись терпения, собери мысли в кучу и вникай на все 100%, и обязательно не гнушайся тем, чтобы перечитать что-то тобой непонятое. Настоятельно рекомендую переписывать код, который я предлагаю в качестве примеров, так ты усвоишь тему в несколько раз лучше. После прочтения каждого абзаца задавай себе вопрос «О чём это он здесь пишет?», «Всё ли мне понятно?».
Что ж, поехали.
Переменные и их типы. Что это такое и с чем их едят?
Переменная в языке программирования — это условный контейнер, в котором хранятся какие-либо данные. В переменной могут храниться строки, числа, списки, словари и многое другое. Её тип зависит от того, что нам нужно в ней хранить. Не грузи себе голову тем, что такое списки, словари и прочее, всё это мы обсудим несколько позже. Наша основная задача на данный момент— это вникнуть в концепцию и понять механизмы работы. Скажем так, нас интересует то, по какой философии работают переменные.
Чтобы проинициализировать переменную, вам нужно написать строку кода формата name = value, где name — это имя переменной, а value — это значение этой переменной. Выглядит это примерно так:
name = 'Alex'
age = 21
Эти 2 строки будут означать, что переменным с именами name и age будут соответственно присвоены значение 'Аlex' и 21. Name имеет тип 'str', т.к. 'Alex' — это строка, а age — 'int', т.к. 21 — это целое число.
Общие сведения о переменных, правила задания названий, изложены ниже:
- Название переменной в Python должно начинаться с алфавитного символа или со знака подчеркивания и может содержать алфавитно-цифровые символы и знак подчеркивания.
И кроме того, название переменной не должно совпадать с названием ключевых слов языка Python. Ключевых слов не так много, их легко запомнить: and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield.
Примеры «валидных» переменных: name, _id, UserIndex, my_age
Переменные никогда не начинаются с цифр и специальных символов, кроме нижнего подчёркивания («_»). Запомните это.
2. В Pythom применяется два типа наименования переменных: Сamel Сase и Underscore Notation.
Camel Case подразумевает, что каждое новое подслово в наименовании переменной начинается с большой буквы. Например:
myName = 'Victor'
Underscore Notation подразумевает, что подслова в наименовании переменной разделяются знаком подчеркивания. Например:
my_name = 'Victor'
Так же название переменной может состоять из одного слова, такое тоже допускается.
3. И также надо учитывать регистрозависимость, поэтому переменные name и Name будут представлять разные объекты.
name = 'Victor'
name = 'Max'
print(name)
print(Name)
Python - регистрозависимый язык, поэтому выражения print и Print или PRINT представляют разные выражения. И если вместо метода print для вывода на консоль мы попробуем использовать метод Print:
Print('Hello World!')
Мы получим следующую ошибку интерпретатора:
4. Переменные бывают различных типов, их тип зависит от того, какие данные они в себе хранят
- boolean - логическое значение True или False
- int - представляет целое число, например, 1, 4, 8, 50.
- float - представляет число с плавающей точкой, например, 1.2 или 34.76
- complex - комплексные числа
- str - строки, например "Hello World!". В Python 3.x строки представляют набор символов в кодировке Unicode
- bytes - последовательность чисел в диапазоне 0-255
- byte array - массив байтов, аналогичен bytes с тем отличием, что может изменяться
- list - список
- tuple - кортеж
- set - неупорядоченная коллекция уникальных объектов
- frozen set - то же самое, что и set, только не может изменяться (immutable)
- dict - словарь, где каждый элемент имеет ключ и значение
Зачастую используются далеко не все типы. Основные типы переменных, которые вам понадобятся на первых порах — это int, str, float и list. С остальными мы ещё успеем познакомиться.
Python является языком с динамической типизацией. Он определяет тип данных переменной исходя из значения, которое ей присвоено. Так, при присвоении строки в двойных или одинарных кавычках переменная имеет тип str. При присвоении целого числа Python автоматически определяет тип переменной как int. Чтобы определить переменную как объект float, ей присваивается дробное число, в котором разделителем целой и дробной части является точка.
x = 123
print(x) # Выведется целое число 123
#Однако, если в следующей строке изменим значение переменной, то…
x = 'Victor'
print(x) # Выведется строка 'Victor'
5. Если есть необходимость узнать тип переменной, то мы можем использовать метод type(variable_name), где variable_name — это имя переменной
x = 123
print(type(x))
Как мы можем видеть, тип данной переменной — это int.
Ввод и вывод данных
Для взаимодействия с пользователем программист должен уметь принимать какие-то данные и выводить их на экран. Для вывода данных существует метод print, а для ввода данных пользователем — метод input.
Пример использования методов input и print для считывания имени у пользователя:
print('What is your name: ')
name = input()
print('Your name is ', name)
Или:
name = input('What is your name: ')
print('Your name is ', name)
На мой вкус, второй способ считывания данных выглядит в разы лаконичнее, нежели первый, но я рекомендую опробовать оба способа в различных ситуациях