February 2, 2019

Python. Урок №1

Надеюсь, ты установил Питон и попробовал написать свою первую программу, ведь сейчас я загружу тебя работой на все выходные, и мы вместе сделаем собственный калькулятор, поэтому приготовься — разбираться придётся долго.

Ввод и хранение данных

В прошлый раз ты научился выводить информацию на экран с помощью функции print. Тебе, наверное, хочется, чтобы пользователь мог вводить данные сам. Как это сделать? В этом нам помогут переменные и функция input. Представь, что память компьютера — это стеллаж, а переменная - в честь чего-то названная полка. На этой полке могут храниться только одни материалы (типы данных). В нашем случае текст (str), числа (int), дроби (float) , а также другие, которые будем разбирать позже.

Теперь давай разберёмся как создать переменную. Первоначально её надо как-то назвать. Запомни, что имя переменной должно быть только из букв латинского алфавита (английский который), знака подчёркивания и цифр, которые не находятся в начале имени переменной! Ещё тебе нужно запомнить, что не лучшей идеей использовать зарезервированные слова языка (типа print, for, while, if и т.д.) в названии переменных (обычно, редактор сам будет это зачёркивать). Хорошим тоном будет называть переменные так, чтобы любой мог понять за что она отвечает.

Давай разберём примеры плохих и хороших переменных.

Бро: gradus, message, message_2, my_age, _time, rost_inch,

Не бро: 2_message, my-age, время, giper-proffesion@l етоГо vrem3ni 215_rus 2-98SRX AMG (да, это одно переменная)

Мы придумали название нашей переменной. Теперь её надо чем-то заполнить. Допустим, мы хотим в переменную weight (с английского - вес) запихнуть дробь 251.4. В Питоне это делается так: weight = 251.4. Присвоили. Теперь попробуй вывести её. Да, print работает и с переменными. Просто в скобках теперь ты пишешь не своё сообщение, а имя переменной. Например, print(weight). Давай попробуем прибавить к этой переменной ещё чего-нибудь. Напишем weight = weight + 422 и попробуем вывести это. Заметь, присваивая значение weight мы на неё же и ссылаемся. Так делать можно. Новое значение получится из сложения старого и 422, т.е 673.4. Проверь, так ли это будет.

Теперь мы хотим вводить значение по-взрослому, прямо в переменную. С клавиатуры. Сделать это можно с помощью функции input. (после всего, что я буду называть функциями, нужно будет ставить скобки). Давай попробуем считать значение и вывести на 3 больше, чем мы приняли.

a = input()
a = a+3
print(a)

Если ты повторишь такой же код, то у тебя вылезет ошибка. Почему? А потому что функция input все введённые данные преобразует в слова (дальше будем говорить “строку”, ибо так правильнее), а сложить строку и число нельзя. Но есть выход. Если твоя строка является числом, то ты можешь использовать функцию int, которая преобразует её в число (также это работает и с другими типами данных, о которых я писал выше). Просто в скобках пиши строку. Теперь первая строка твоего кода будет выглядеть так: a = int(input()).

Условные операторы

Они позволяют менять ход твоей программы в зависимости от каких-либо условий. Вот тебе небольшая памятка, которая в будущем тебе пригодится:

== (возвращает “правда”, если два значения равны)

!= (возвращает “правда”, если два значения НЕ равны)

> (возвращает “правда”, если значение слева больше правого)

< (возвращает “правда”, если значение справа больше левого)

>= (возвращает “правда”, если значение слева больше или равно правому)

<= (возвращает “правда”, если значение справа больше или равно левому)

Запись условия выглядит так:

if <условие>:
	<действия, если условие “правда”>

Обязательно после условия необходимо ставить “:”, и действия, выполняемые при “правдивости” условия, необходимо сдвигать на 4 пробела вправо (а лучше использовать клавишу Tab). Если условие “неправда”, то Python просто пойдёт дальше, не выполняя никаких действий. В одном if вы можете указать несколько условий с помощью логических операций:

and (“И”, возвращает “правда”, если оба условия возвращают “правда”)

or (“ИЛИ”, возвращает “правда”, если хотя бы одно из условий возвращает “правда”)

not (“НЕ”, возвращает “правда”, если условие возвращает “неправда”)

Если вы используете or и and вместе, то условия между and необходимо обернуть в скобки.

Похоже на какой-то учебник по информатике? Ну, это он и есть! Давай разберём реальный пример, чтобы тебе было понятно. У нас есть переменная pogoda, в которой храним состояние погоды и переменная wind, в которой храним скорость ветра в м/c:

if (pogoda == "солнечно" and wind <= 3) or (pogoda ==  "пасмурно" and wind <=1):
	print("На улице хорошо, можешь выйти погулять")

Для лучшего понимания советую читать это по-русски. Например, если (погода == солнечная) или (погода == пасмурная и ветер меньше 1), то тогда выводи на экран сообщение о том, что всё хорошо.

Может быть такая ситуация, что мы хотим выполнить действие, которое будет происходить только в том случае, если условие "неправда". Для этого вы можете написать else и добавить необходимые действия. Пример:

if wind < 4:
	print("На улице слабый ветер!")
else:
	print("На улице сильный ветер")

Также возможно добавление нескольких альтернативных условий с помощью elif. Порядок их проверки зависит от порядка написания. Например:

if wind > 4:
	print(“На улице сильный ветер”)
elif wind >= 0:
	print(“На улице слабый ветер”)
else:
	print("Ошибка: ща бы ветер в минус уходил")

Сначала программа проверит, имеет ли wind значение больше 4. Если да, то выведет текст и пойдёт дальше, не трогая остальные условия. Если нет, то пойдёт по второму условию и т.д.

Теперь давай напишем калькулятор?

Вообще, ты можешь попробовать написать его сам, но сначала давай разберёмся с арифметическими операциями в Python. Для сложения и вычитания используются, как ни странно, знаки + и -, для умножения и деления * и /, для возведения в степень **, а для получения остатка %. Теперь попробуй самостоятельно написать калькулятор, который умеет складывать, вычитать, делить и умножать. Если совсем не получается, смотри код ниже:

a1 = float(input())
a2 = float(input())
o = input()
if o == "+":
	print(a1+a2)
elif o == "-":
	print(a1-a2)
elif o == "*":
	print(a1*a2)
elif o == "/":
	print(a1/a2)

Домашнее задание

Да-да-да. Я буду давать тебе домашнее задание, что ты мог закрепить изученный материал и найти непонятные для себя моменты. Что тебе необходимо сделать: на сайте pythontutor.ru решить не менее 5 заданий по 1 и 2 теме. Можешь идти не по порядку, а начинать с того, что покажется наиболее простым и понятным. По прогрессу и вопросам можешь писать мне, я помогу разобраться. Удачи!