Курс

"Программирование Phyton"

Базовые структуры данных

Работа с переменными, разбор типов данных, которые присутствуют в языке Python

 

Создание нескольких простых программ с применением переменных

Начинающим программистам может быть не совсем понятно, зачем вообще что-то записывать в переменную, если можно просто оперировать значениями без них. Понимание переменных придет немного позже, когда мы начнем создавать более сложные программы и нам потребуется хранить большие объемы информации

Переменная хранит определенные данные

Название переменной в 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

Типы переменных в языке Python не объявляются очевидно, тем не менее, они присутствуют. Интерпретатор понимает, что записывается в переменную, и на основании этого добавляет тип к этой переменной.

Во время исполнения программы есть возможность перезаписывать переменные, а также менять их тип. Если вначале переменной был задан тип float, то потом её можно преобразовать в другой тип, например string.

first_num = 23.2 # Тип данных float

first_num = "1" # Тип данных string

При объединении нескольких переменных с разными типами данных программа спровоцирует ошибку

Пример:

first_num = "IloveYou"

second_num = 13

res = first_num + second_num # Скрипт выдаст ошибку

 

Переменная хранит данные одного из типов данных. В Python существует множество различных типов данных, которые подразделяются на категории: числа, последовательности, словари, наборы:

boolean - логическое значение True или False

int - представляет целое число, например, 1, 4, 8, 50

float - представляет число с плавающей точкой, например, 1.2 или 34.76

complex - комплексные числа

str - строки, например "hello". В Python 3.x строки представляют набор символов в кодировке Unicode

bytes - последовательность чисел в диапазоне 0-255

byte array - массив байтов, аналогичен bytes с тем отличием, что может изменяться

list - список

tuple - кортеж

set - неупорядоченная коллекция уникальных объектов

frozen set - то же самое, что и set, только не может изменяться (immutable)

dict - словарь, где каждый элемент имеет ключ и значение

 

На этом занятии мы разберем 4 базовых типа переменных:

some = 1 

Integer - целые числа;

some = 1.12

 Float - числа с плавающей точкой;

some = "Привет" 

String - строки;

some = True 

Boolean - тип данных принимающий либо False, либо True

Более сложные типы данных мы будем разбирать в последующих уроках.

В одной строке можно создать сразу несколько переменных:

first = sec = third = 1 # Всем трём переменным будет присвоено значение 1

first, sec, third = "Hi", 75, 23.1 # Поочередное присвоение значений

Исходный код

Небольшой калькулятор

num_1 = float (input ("Enter first num: "))

num_2 = float (input ("Enter second num: "))

res = float (num_1) + num_2

Res = input ("Enter something: ")

Res *= 5

print (Res)

 

print ("Result is", res)

Детали:

В Python применяется два типа наименования переменных: camel case и underscore notation.

Camel case подразумевает, что каждое новое подслово в наименовании переменной начинается с большой буквы. Например:

userName = "Tom"

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

user_name = "Tom"

И также надо учитывать регистрозависимость, поэтому переменные name и Name будут представлять разные объекты.

Python является языком с динамической типизацией. Он определяет тип данных переменной, исходя из значения, которое ей присвоено. Так, при присвоении строки в двойных или одинарных кавычках переменная имеет тип str. При присвоении целого числа Python автоматически определяет тип переменной как int. Чтобы определить переменную как объект float, ей присваивается дробное число, в котором разделителем целой и дробной части является точка. Число с плавающей точкой можно определять в экспоненциальной записи.

При этом в процессе работы программы мы можем изменить тип переменной, присвоив ей значение другого типа.

С помощью функции type() динамически можно узнать текущий тип переменной:

user_id = "12tomsmith438"

print(type(user_id))  # <class 'str'>

user_id = 234

print(type(user_id))  # <class 'int'>

Для закрепления материала:

Создать программу, которая позволит ввести  5 десятичных чисел и вывести их на печать в двоичной, восьмеричной и шестнадцатеричной системах

Основные операторы

Изучение арифметических  и условных операторов

 

С помощью условного оператора if мы можем выполнять разный код в зависимости от различных типов условий

 

Развитие логики

В этом занятии мы вводим понятия логических и арифметических операций и составим программы, которые позволят выполнять тот или иной код в соответствии с заданными условиями. Таким образом, мы сможем решать довольно сложные логические задачи.
Начнем с базовых арифметических операторов.

Код и сопроводительные материалы

Условные операторы, исключения

Логические деревья, случайный лес

 

Отработка навыков создания логических структур

 

Игровой пример, понимание - для чего мы прорабатываем логические структуры

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

Условные операторы – это линейный метод решения логических задач. Линейные методы обладают рядом важных достоинств: быстро обучаются, способны работать с большим количеством объектов и признаков, имеют небольшое количество параметров, легко регуляризуются

В данном занятии мы затронем тему логических (решающих) деревьев, которые хорошо описывают процесс принятия решения во многих ситуациях. Например, когда клиент приходит в банк и просит выдать ему кредит, то сотрудник банка начинает проверять условия:

1. Какой возраст у клиента? Если меньше 18, то отказываем в кредите, иначе продолжаем

2. Какая зарплата у клиента? Если меньше 50 тысяч рублей, то переходим к шагу 3, иначе к шагу 4

3. Какой стаж у клиента? Если меньше 10 лет, то не выдаем кредит, иначе выдаем

4. Есть ли у клиента другие кредиты? Если есть, то отказываем, иначе выдаем

Такой алгоритм, как и многие другие, очень хорошо описывается решающим деревом

Что такое исключение?

Вспомните самую привычную ошибку ввода, когда в форме вместо e-mail мы в спешке пытаемся ввести абстрактные данные – форма сообщает об ошибке, соответственно, кто-то предусмотрел такой вариант развития событий и продумал, как обезопасить итоговый результат

Предположим, что вы разработали программу «Текстовый редактор». В программе пользователь может создать новый файл, вписать в него данные и далее сохранить файл в системе.

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

При таком раскладе у вас получится ошибка, которая сломает программу и отобьет любое желание у пользователя работать в ней. 

Получается, исключение – это ошибка, что возникает в ходе работы самой программы. Отслеживать такие ошибки при помощи условных операторов не всегда возможно, ведь программа уже запущена, поведение пользователя нам неизвестно заранее, а значит и «ловить» ошибку нам нужно в момент её создания

Отлов ошибок

Для вышеописанного случая как раз и нужна конструкция try except для отлова ошибок в момент их создания. 

При помощи данной конструкции вы можете отслеживать ошибки различных форматов и событий. Можно отследить неверное открытие файла, неверное подключение класса, неверное написание переменной или функции, да чего уж там, даже деление чисел на ноль!
 

Задание

В качестве примера давайте напишем программу, которая будет эмулировать поведение продавца магазина мороженого.  Продумайте и запишите при помощи условных операторов возможный диалог с покупателем, покупку или отказ от нее

Код и сопроводительные материалы