## ++Тема 2++<br>Типы данных и переменные. Ввод и вывод данных (c) Яценко Р.Н., 2019-2020 --- ## 1. Ввод и вывод данных ---- ### Вывод данных Для печати значений в Питоне есть функция `print()` Внутри круглых скобок через запятую мы пишем то, что хотим вывести ---- ### Пример 1 ```python print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звёздочки означают возведение в степень print(37 / 3) # один слэш — это деление с ответом-дробью print(37 // 3) # два слэша считают частное от деления нацело # это как операция div в других языках print(37 % 3) # процент считает остаток от деления нацело # это как операция mod в других языках ``` ---- ### Выполнение <iframe frameborder="0" src="http://pythontutor.com/iframe-embed.html#code=print%285%20%2B%2010%29%0Aprint%283%20*%207,%20%2817%20-%202%29%20*%208%29%0Aprint%282%20**%2016%29%20%20%23%20%D0%B4%D0%B2%D0%B5%20%D0%B7%D0%B2%D1%91%D0%B7%D0%B4%D0%BE%D1%87%D0%BA%D0%B8%20%D0%BE%D0%B7%D0%BD%D0%B0%D1%87%D0%B0%D1%8E%D1%82%20%D0%B2%D0%BE%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B2%20%D1%81%D1%82%D0%B5%D0%BF%D0%B5%D0%BD%D1%8C%0Aprint%2837%20/%203%29%20%20%23%20%D0%BE%D0%B4%D0%B8%D0%BD%20%D1%81%D0%BB%D1%8D%D1%88%20%E2%80%94%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%81%20%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%BE%D0%BC-%D0%B4%D1%80%D0%BE%D0%B1%D1%8C%D1%8E%0Aprint%2837%20//%203%29%20%20%23%20%D0%B4%D0%B2%D0%B0%20%D1%81%D0%BB%D1%8D%D1%88%D0%B0%20%D1%81%D1%87%D0%B8%D1%82%D0%B0%D1%8E%D1%82%20%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%BE%D0%B5%20%D0%BE%D1%82%20%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%D1%86%D0%B5%D0%BB%D0%BE%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20%D1%8D%D1%82%D0%BE%20%D0%BA%D0%B0%D0%BA%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F%20div%20%D0%B2%20%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85%0Aprint%2837%20%25%203%29%20%20%23%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%BD%D1%82%20%D1%81%D1%87%D0%B8%D1%82%D0%B0%D0%B5%D1%82%20%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D0%BA%20%D0%BE%D1%82%20%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%D1%86%D0%B5%D0%BB%D0%BE%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20%D1%8D%D1%82%D0%BE%20%D0%BA%D0%B0%D0%BA%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F%20mod%20%D0%B2%20%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85%20%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=false&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 60vh; transform: scale(1);"> </iframe> ---- ### Ввод данных Для ввода данных в программу мы используем функцию `input()` Она считывает одну строку ---- ### Пример 2 ```python print('Как вас зовут?') name = input() # считываем строку и кладём её в переменную name print('Здравствуйте, ' + name + '!') ``` ---- ### Выполнение <iframe frameborder="0" src="http://pythontutor.com/iframe-embed.html#code=print%28'%D0%9A%D0%B0%D0%BA%20%D0%B2%D0%B0%D1%81%20%D0%B7%D0%BE%D0%B2%D1%83%D1%82%3F'%29%0Aname%20%3D%20input%28%29%20%20%23%20%D1%81%D1%87%D0%B8%D1%82%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83%20%D0%B8%20%D0%BA%D0%BB%D0%B0%D0%B4%D1%91%D0%BC%20%D0%B5%D1%91%20%D0%B2%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%83%D1%8E%20name%0Aprint%28'%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D1%81%D1%82%D0%B2%D1%83%D0%B9%D1%82%D0%B5,%20'%20%2B%20name%20%2B%20'!'%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=false&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 60vh; transform: scale(1);"> </iframe> --- ## 2. Типы данных ---- ### Элементы данных Вся информация, хранящаяся в памяти компьютера, состоит из *элементов данных*, которые имеют форму чисел, символов и т.д. Каждый такой элемент данных должен быть обозначен уникальным именем -- *идентификатором* и принадлежать к определенному *типу данных* ---- ### Константа это элемент данных со значением, которое в ходе задачи не меняется ---- ### Переменная это величина, которая имеет фиксированное имя (идентификатор) и значение, которое может изменяться в зависимости от применяемых действий ---- ### Создание констант и переменных ```python # Числовые константы LENGTH = 100 VES = 3.5 # Строковые константы MACHINE = 'Хонда' TV_SET = 'Samsung' # Числовые переменные date = 13 month = 9 # Строковые переменные message = 'С Днем программиста!' comment = 'Сегодня 256-й день года' ``` ---- ### Тип данных Тип объекта определяет, какие действия можно делать с объектами этого типа: - возможные значения элементов данных (переменных и констант), принадлежащих к данному типу - внутреннюю форму представления элементов данных в памяти компьютера - операции и функции, которые могут выполняться над элементами данных, принадлежащими к данному типу ---- ### Основные типы данных в Python - Целые числа хранятся в объектах типа `int` 4, 687, -45, 0 - Дробные числа (вещественные числа) — в объектах типа `float` 1.45, -3.789654, 0.00453 - Строки хранятся в объектах типа `str` `"ball", "What is your name?", 'dkfjUUv', '6589'` ---- ### Операции над целыми числами Знак | Операция :---:|:-------: `+` | сложение `-` | вычитание `*` | умножение `**` | возведение в степень `/` | деление (дробный результат) `//` | деление нацело `%` | остаток от деления ---- ### Пример 3. Вычисления с целыми числами ```python print("18 - 4 + 2 =", 18 - 4 + 2) print("6 * 3 =", 6 * 3) print("19 / 4 =", 19 / 4) print("107 // 4 =", 107 // 4) print("107 % 4 =", 107 % 4) ``` ---- ### Пример 3. Результат ``` 18 - 4 + 2 = 16 6 * 3 = 18 19 / 4 = 4.75 107 // 4 = 26 107 % 4 = 3 ``` ---- ### Пример 4. Цифры трехзначного числа ```python a = int(input('Введите число')) one = a % 10 print('Цифра единиц числа', one) dec = (a // 10) % 10 print('Цифра десятков числа', dec) hun = a // 100 print('Цифра сотен числа', hun) rez = hun * 100 + dec * 10 + one print('А это тоже число', rez) ``` ---- ### Пример 4. Выполнение <iframe frameborder="0" src="http://pythontutor.com/iframe-embed.html#code=a%20%3D%20int%28input%28'%D0%92%D0%B2%D0%B5%D0%B4%D0%B8%D1%82%D0%B5%20%D1%87%D0%B8%D1%81%D0%BB%D0%BE'%29%29%20%0Aone%20%3D%20a%20%25%2010%0Aprint%28'%D0%A6%D0%B8%D1%84%D1%80%D0%B0%20%D0%B5%D0%B4%D0%B8%D0%BD%D0%B8%D1%86%20%D1%87%D0%B8%D1%81%D0%BB%D0%B0',%20one%29%0Adec%20%3D%20%28a%20//%2010%29%20%25%2010%0Aprint%28'%D0%A6%D0%B8%D1%84%D1%80%D0%B0%20%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D0%BE%D0%B2%20%D1%87%D0%B8%D1%81%D0%BB%D0%B0',%20dec%29%20%0Ahun%20%3D%20a%20//%20100%0Aprint%28'%D0%A6%D0%B8%D1%84%D1%80%D0%B0%20%D1%81%D0%BE%D1%82%D0%B5%D0%BD%20%D1%87%D0%B8%D1%81%D0%BB%D0%B0',%20hun%29%0Arez%20%3D%20hun%20*%20100%20%2B%20dec%20*%2010%20%2B%20one%0Aprint%28'%D0%90%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%BE%D0%B6%D0%B5%20%D1%87%D0%B8%D1%81%D0%BB%D0%BE',%20rez%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=nevernest&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 60vh; transform: scale(1);"> </iframe> ---- ### Операции над дробными числами (float) Знак | Операция :---:|:-------: `+` | сложение `-` | вычитание `*` | умножение `**` | возведение в степень `/` | деление (дробный результат) ---- ### Пример 5. Бесполезные факты ```python name = input("Привет. Как тебя зовут? ") age = input("Сколько тебе лет? ") weight = int(input("Сколько в тебе килограммов? ")) seconds = age * 365 * 24 * 60 * 60 print("Твой нынешний возраст - свыше", seconds, "секунд.") moon_weight = weight / 6 print("Знаете ли Вы, что на Луне вы весили бы всего", moon_weight, "кг?") sun_weight = weight * 27.1 print("А вот находясь на Солнце, вы бы весили", sun_weight, " кг. \n(Но, увы, это продолжалось бы недолго...)") ``` ---- ### Пример 5. Результат ``` Привет. Как тебя зовут? Вася Сколько тебе лет? 13 Сколько в тебе килограммов? 55 Твой нынешний возраст - свыше 409968000 секунд. Знаете ли Вы, что на Луне вы весили бы всего 9.166666666666666 кг? А вот находясь на Солнце, вы бы весили 1490.5 кг. (Но, увы, это продолжалось бы недолго...) ``` --- ## 3. Преобразование типов ---- ### Зачем это нужно? Часто возникает необходимость перейти от одного типа к другому. Например, выводимое на экран число `print` сначала преобразовывает в текст. Бывают ситуации, когда нужно поменять тип без вывода информации на экран или осуществить преобразование строки в число. Эта операция называется *преобразованием типов* ---- ### Пример 6 ```python a = input() b = input() s = a + b print(s) ``` ---- ### Выполнение <iframe frameborder="0" src="http://pythontutor.com/iframe-embed.html#code=a%20%3D%20input%28%29%0Ab%20%3D%20input%28%29%0As%20%3D%20a%20%2B%20b%0Aprint%28s%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=false&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 60vh; transform: scale(1);"> </iframe> ---- ### Пример 7 ```python a = int(input()) b = int(input()) s = a + b print(s) ``` ---- ### Выполнение <iframe frameborder="0" src="http://pythontutor.com/iframe-embed.html#code=a%20%3D%20int%28input%28%29%29%0Ab%20%3D%20int%28input%28%29%29%0As%20%3D%20a%20%2B%20b%0Aprint%28s%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=false&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 60vh; transform: scale(1);"> </iframe> ---- ### Функции преобразования - `float()` создает новое дробное число из строки или целого числа - `int()` создает новое целое число из строки или дробного числа - `str()` создает новую строку из числа (или значения любого другого типа) ---- ### Преобразование целого числа в дробное ```python a = 24 print(a) b = float(a) print(b) ``` ``` 24 24.0 ``` ---- ### Преобразование дробного числа в целое ```python a = 24.7 print(a) b = int(a) print(b) c = round(a) print(c) ``` ``` 24.7 24 25 ``` --- ## 4. Составные операторы присваивания ---- ### Форма записи `a = a * 5` можно записать так `a *= 5` ---- ### Инкремент и декремент Увеличение на единицу (*инкремент*) `x += 1` Уменьшение на единицу (*декремент*) `x -= 1` ---- ### Таблица составных операторов Оператор | Образец | Равносильно :-:|:-:|:-: `+=` | `x += 5` | `x = x + 5` `-=` | `x -= 5` | `x = x - 5` `*=` | `x *= 5` | `x = x * 5` `/=` | `x /= 5` | `x = x / 5` `%=` | `x %= 5` | `x = x % 5` --- ## 5. Дополнительные параметры print ---- ### Функция print() - По умолчанию функция `print()` принимает несколько аргументов, выводит их через пробел, после чего ставит перевод строки - Это поведение можно изменить, используя именованные параметры: - `sep` (разделитель) - `end` (окончание) ---- ### Разделитель строк Через параметр `sep` можно указать отличный от пробела разделитель строк: ```python print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-") print(1, 2, 3, sep="//") print("a", "b", "c", sep="") ``` ``` Mon-Tue-Wed-Thu-Fri-Sat-Sun 1//2//3 abc ``` ---- ### Конец строки Параметр `end` позволяет указывать, что делать, после вывода строки. По-умолчанию происходит переход на новую строку. Однако это действие можно отменить, указав любой другой символ или строку: ```python print(10, end="") print('+', end="") print(20, end="") ``` `10+20` ---- ### Пример 8 ```python print(1, 2, 3) print(4, 5, 6) print(1, 2, 3, sep=', ', end='. ') print(4, 5, 6, sep=', ', end='. \n') print(1, 2, 3, sep='', end=' -- ') print(4, 5, 6, sep=' * ', end='.') ``` ``` 1 2 3 4 5 6 1, 2, 3. 4, 5, 6. 123 -- 4 * 5 * 6. ``` ---- ### Форматированный вывод ```python student = "Вася" old = 18 grade = 9.2 print("Это %s, ему %d. Его оценка: %.1f" % (student, old, grade)) ``` `Это Вася, ему 18. Его оценка: 9.2` Вместо трех комбинаций символов `%s, %d, %f` подставляются значения переменных `pupil`, `old`, `grade`. Буквы `s, d, f` обозначают типы данных – строку, целое число, вещественное число Перед буквой `%f` точку с числом указывает, сколько требуется знаков после запятой --- ## Спасибо за внимание! ![](https://i.imgur.com/gKDsna4.png) (c) Яценко Р.Н., 2019-2020
{"metaMigratedAt":"2023-06-15T12:29:31.553Z","metaMigratedFrom":"YAML","title":"Тема 2. Типы данных и переменные. Ввод и вывод данных","breaks":false,"slideOptions":"{\"allottedMinutes\":80,\"slideNumber\":\"c\",\"theme\":\"beige\",\"transition\":\"slide\",\"spotlight\":{\"enabled\":true}}","contributors":"[{\"id\":\"93a8c43f-1b5b-4461-9101-89b183ccbc1c\",\"add\":15699,\"del\":3142}]"}
    749 views