Как ввести операцию в python
Python 3 — это современный язык, на котором просто и приятно писать программы.
Для печати значений в Питоне есть функция print(). Внутри круглых скобок через запятую мы пишем то, что хотим вывести. Вот программа, которая делает несколько вычислений:
print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звёздочки означают возведение в степень print(37 / 3) # один слэш — это деление с ответом-дробью print(37 // 3) # два слэша считают частное от деления нацело # это как операция div в других языках print(37 % 3) # процент считает остаток от деления нацело # это как операция mod в других языках
Для ввода данных в программу мы используем функцию input() . Она считывает одну строку.
Вот программа, которая считывает имя пользователя и приветствует его:
Пётр
print('Как вас зовут?') name = input() # считываем строку и кладём её в переменную name print('Здравствуйте, ' + name + '!')
Мы будем писать программы, которые считывают данные, перерабатывают их и выводят какой-то результат. При запуске на компьютере такие программы считывают данные, которые пользователь вводит с клавиатуры, а результат выводят на экран.
Попробуем написать программу, которая считывает два числа и выводит их сумму. Для этого считаем два числа и сохраним их в переменные a и b , пользуясь оператором присваивания = . Слева от оператора присваивания в программах на Питоне ставится имя переменной — например, строка из латинских букв. Справа от оператора присваивания ставится любое выражение. Имя станет указывать на результат вычисления выражения. Проиграйте эту программу и посмотрите на результаты её работы:
a = input() b = input() s = a + b print(s)
Мы видим, что программа выводит 57 , хотя в реальной жизни 5 + 7 будет 12 . Это произошло потому, что Питон в третьей строчке «сложил» две строки, а не два числа. В Питоне две строки складываются так: к первой строке приписывается вторая.
Обратите внимание, что в визуализаторе содержимое переменных a и b заключено в кавычки. Это означает, что в a и b лежат строки, а не числа.
В Питоне все данные называются объектами. Число 2 представляется объектом «число 2», строка ‘hello’ – это объект «строка ‘hello’ ».
Каждый объект относится к какому-то типу. Строки хранятся в объектах типа str , целые числа хранятся в объектах типа int , дробные числа (вещественные числа) — в объектах типа float . Тип объекта определяет, какие действия можно делать с объектами этого типа. Например, если в переменных first и second лежат объекты типа int , то их можно перемножить, а если в них лежат объекты типа str , то их перемножить нельзя:
first = 5 second = 7 print(first * second) first = '5' second = '7' print(first * second)
Чтобы преобразовать строку из цифр в целое число, воспользуемся функцией int() . Например, int(’23’) вернет число 23 .
Вот пример правильной программы, которая считывает два числа и выводит их сумму:
a = int(input()) b = int(input()) s = a + b print(s)
Python: Арифметические операции
На базовом уровне компьютеры оперируют только числами. Даже в прикладных программах на высокоуровневых языках внутри много чисел и операций над ними. Но для старта достаточно знать обычную арифметику — с нее и начнем.
Например, для сложения двух чисел в математике мы пишем: 3 + 4 . В программировании — то же самое. Вот программа, которая складывает два числа:
3 + 4
Арифметика в программировании практически не отличается от школьной арифметики.
Строчка кода 3 + 4 заставит интерпретатор сложить числа и узнать результат. Эта программа будет работать, но в ней нет смысла. По сути, мы не даем команду интерпретатору, мы просто говорим ему: «смотри, сумма трех и четырех». В реальной работе недостаточно сообщать интерпретатору о математическом выражении.
Например, если создавать интернет-магазин, недостаточно просить интерпретатор посчитать стоимость товаров в корзине. Нужно просить посчитать стоимость И показать цену покупателю.
Нам нужно попросить интерпретатор сложить 3 + 4 И дать команду сделать что-то с результатом. Например, вывести его на экран:
# Сначала вычисляется сумма, # затем она передается в функцию печати print(3 + 4)
После запуска на экране появится результат:
Кроме сложения доступны следующие операции:
- — — вычитание
- * — умножение
- ** — возведение в степень
- / — деление
- // — целочисленное деление
- % — остаток от деления
Теперь выведем на экран результат деления, а потом результат возведения в степень:
print(8 / 2) # => 4.0 (При делении двух чисел получается тип данных float) print(3 ** 2) # => 9
Иногда для удобства мы будем показывать в комментариях результат запуска строчек кода вот так: => РЕЗУЛЬТАТ . Например, # => 4 .
Первая инструкция выведет на экран 4 (потому что 8 / 2 равно 4), а вторая инструкция выведет на экран 9 (потому что 3 2 равно 9).
Задание
Выведите на экран результат деления числа 81 на 9 .
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
- Всегда отбивайте арифметические операторы пробелами от самих чисел (операндов) – это хороший стиль программирования. Поэтому в наших примерах print(3 + 4) , а не print(3+4) .
- Деление на ноль — порождает ошибку.
- Деление с остатком
Определения
- Инструкция — наименьшая автономная часть языка программирования; команда или набор команд. Программа обычно представляет собой последовательность инструкций.
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе
- Привет, Мир!
- Комментарии
- Инструкции (Statements)
- Как мы проверяем ваши решения
- Синтаксические ошибки
- Арифметические операции
- Операторы
- Коммутативная операция
- Композиция операций
- Приоритет
- Числа с плавающей точкой
- Линтер
- Кавычки
- Экранированные последовательности
- Конкатенация
- Кодировка
- Что такое переменная
- Изменение переменной
- Выбор имени переменной
- Ошибки при работе с переменными
- Выражения в определениях
- Переменные и конкатенация
- Именование переменных
- Магические числа
- Константы
- Интерполяция
- Извлечение символов из строки
- Срезы строк
- Multi-line строки
- Типы данных
- Сильная (или Строгая) типизация
- Неизменяемость примитивных типов
- Явное преобразование типов
- Функции и их вызов
- Сигнатура функции
- Аргументы по умолчанию
- Вызов функции — выражение
- Функции с переменным числом параметров
- Детерминированность
- Стандартная библиотека
- Объекты
- Неизменяемость
- Методы как выражения
- Цепочка вызовов
- Создание (определение) функций
- Возврат значений
- Параметры функций
- Необязательные параметры функций
- Именованные аргументы
- Аннотации типов
- Логический тип
- Предикаты
- Комбинирование операций и функций
- Логические операторы
- Отрицание
- Результат логических выражений
- Условная конструкция (if)
- Условная конструкция else
- Конструкция else + if = elif
- Тернарный оператор
- Оператор Match
- Цикл While
- Агрегация данных (Числа)
- Агрегация данных (Строки)
- Обход строк
- Условия внутри тела цикла
- Формирование строк в циклах
- Пограничные случаи
- Синтаксический сахар
- Возврат из циклов
- Цикл For
Ввод-вывод, оператор присваивания, арифметические операции
Пример выше неудобен тем, что исходные данные для программы заданы в тексте программы, и для того, чтобы использовать программу для другого треугольника необходимо исправлять текст программы. Это неудобно, лучше, чтобы текст программы не менялся, а программа запрашивала бы у пользователя данные, необходимые для решения задачи, то есть запрашивала бы значения двух исходных переменных a и b . Для этого будем использовать функцию input() , которая считывает строку с клавиатуры и возвращает значение считанной строки, которое сразу же присвоим переменым a и b :
a = input()
b = input()
Правда, функция input возвращает текстовую строку, а нам нужно сделать так, чтобы переменные имели целочисленные значения. Поэтому сразу же после считывания выполним преобразование типов при помощи фунцкии int , и запишем новые значения в переменные a и b .
a = int(a)
b = int(b)
Можно объединить считывание строк и преобразование типов, если вызывать функцию int для того значения, которое вернет функция input :
a = int(input())
b = int(input())
Далее в программе вычислим значение переменной c и выведем результат на экран.
Теперь мы можем не меняя исходного кода программы многократно использовать ее для решения различных задач. Для того нужно запустить программу и после запуска программы ввести с клавиатуры два числа, нажимая после кажого числа клавишу Enter . Затем программа сама выведет результат.
Введение в строки. Базовые операции над строками
Сегодня мы с вами познакомимся с еще одним типом данных – строками.
Строки в Python задаются очень просто: или в двойных кавычках:
s1 = "Панда"
или в одинарных (апострофах):
s2 = 'Panda'
Всегда, когда задаются строки, не забывайте про кавычки, если их не поставить:
s2 = Panda
то Panda будет восприниматься как переменная и возникнет ошибка.
В Python есть еще один способ определения многострочных строк. Для этого используются тройные кавычки (одинарные или двойные, неважно) и в них прописывается текст, например, так:
text = '''Я Python бы выучил только за то, что есть популярные курсы. Много хороших курсов!'''
Если отобразить содержимое этой строки в консоли Питона, то увидим специальный символ ‘\n’:
'Я Python бы выучил только за то,\nчто есть популярные курсы.\nМного хороших курсов!'
Это один символ, отвечающий в тексте за перенос на новую строку и когда функция print() встречает его, то осуществляет такой переход:
print(text)
То есть, просто запомните, что для перехода на новую строку используется спецсимвол, который записывается в виде ‘\n’. Если записать просто ‘n’ – это будет символ латинской буквы n, а при добавлении слеша – превращается в символ переноса строки.
Далее, строка может вообще не содержать ни одного символа:
Получаем пустую строку. Но если добавить хотя бы один символ, даже если это будет пробел:
то имеем уже не пустую строку, в данном случае содержащей символ пробела.
Базовые операции над строками
Давайте посмотрим, какие базовые операции можно выполнять со строками в Python. Например, мы хотим соединить две строки между собой:
s1 = "Я люблю" s2 = "язык Python"
Это можно сделать с помощью оператора +, который в случае со строками выполняет их объединение (конкатенацию):
s3 = s1 + s2 print(s3)
Но мы бы хотели добавить пробел между словами. Сделаем это так:
s3 = s1 + " " + s2
С помощью первого оператора + добавляем пробел к первой строке, а затем, вторым оператором + добавляем вторую строку s2.
Но при использовании оператора конкатенации следует быть осторожным – он объединяет строки между собой. Например, команда:
s3 = s1 + 5
приведет к ошибке, так как операнд справа является числом, а не строкой. Если нам все же необходимо соединить строку с числом, то предварительно число нужно преобразовать в строку. Сделать это можно с помощью специальной функции str():
s3 = s1 + str(5)
Функция str() выполняет преобразование в строки разные типы данных, не только числа, например, можно указать булевое значение:
str(True)
а также другие типы данных, о которых мы еще с вами будем говорить.
Следующий оператор *, применительно к строкам, выполняет их дублирование, указанное число раз:
"ха " * 5
Причем, здесь мы должны указывать именно целое число, для вещественных получим ошибку:
"ха " * 5.5
И это понятно, так как продублировать строку 5,5 раз нельзя.
Следующая функция len() возвращает длину строки (число символов в строке):
a = "hello" len(a)
Для пустой строки получим значение 0:
И, как видите, этой функции можно передавать или переменную на строку, или непосредственно записывать строки:
len("Python")
Следующий оператор in позволяет проверять наличие подстроки в строке, например:
'ab' in "abracadabra" 'abc' in "abracadabra"
Следующая важная группа операторов – сравнения строк. В самом простом случае, строки можно сравнивать на равенство:
a == "hello"
a == "Hello"
вернет False, так как большая буква H и малая h – это два разных символа. Для сравнения на неравенство используем оператор не равно:
a != "hello" a != "hello "
Также смотрите строка «hello» (без пробела) и строка «hello » (с пробелом) – это две разные строки и они не равны между собой.
Наконец, строки можно сравнивать на больше и меньше, например, кот больше, чем кит с точки зрения строк:
'кот' > 'кит'
Почему так? Все просто. Здесь используется лексикографический порядок сравнения. Сначала берутся первые символы (они равны), затем переходим ко вторым символам. По алфавиту сначала идет символ ‘и’, а потом – символ ‘о’, поэтому ‘о’ больше, чем ‘и’. Как только встретились не совпадающие символы, сравнение завершается и последующие символы строк игнорируются.
Если взять равные строки:
'кот' > 'кот'
то получим False, так как ни один символ не больше соответствующего другого из второй строки. Но, добавив пробел в первую строку:
'кот ' > 'кот'
получим значение True, так как при всех прочих равных условиях больше считается более длинная строка. Наконец, если у первой строки первую букву сделать заглавной:
'Кот ' > 'кот'
то получим False. Почему? Дело в том, что каждый символ в компьютере связан с определенным числом – кодом, в соответствии с кодовой таблицей. Например, в таблице ASCII мы видим, что сначала идут символы заглавных букв, а затем – прописных. Поэтому коды больших букв меньше соответствующих кодов малых букв.
Конечно, в Python используется немного другая кодировка UTF-8, но в ней этот принцип сохраняется. Мы можем легко посмотреть код любого символа с помощью функции ord():
ord('К') ord('к')
И, как видите, для буквы ‘К’ код меньше, чем для ‘к’.
- + (конкатенация) – соединение строк;
- * (дублирование) – размножение строкового фрагмента;
- str() – функция для преобразования аргумента в строковое представление;
- len() – вычисление длины строки;
- in – оператор для проверки вхождения подстроки в строку;
- операторы сравнения: == != >
- ord() – определение кода символа.
