Когда я начал учиться Python 3, я был смущен по поводу семантика разделиния двух целых чисел. Это результат поплавок или целочисленное значение?
Причиной моей путаницы была неприятной ошибкой Java, которую я когда-то нашел в моем коде. Предполагается, что код должен выполнить простое разделение двух целых чисел, чтобы вернуть значение параметра между нулем и один. Но Java использует целочисленное разделение, то есть, он пропускает остаток. Таким образом, значение всегда было нулевым или одним, но ничто не между ними. Мне потребовалось дни, чтобы понять это.
Сохраните свое время отладки, запоминав следующее правило один раз и для всех.
Двойная ярмарка // Оператор выполняет целочисленное подразделение и одноотечка / Оператор выполняет поплавок подразделение. Пример для целочисленного подразделения – 40//11 Отказ Пример для поплавкового разделения – 40/11.6363636363636362 Отказ
>>> # Python 3 >>> 40//11 3 >>> 40/11 3.6363636363636362
Как работает целое отделение в Python?
Целочисленное разделение состоит из двух шагов:
- Выполнить нормальное поплавное подразделение
A/B. - Круглый в результате поплавковый номер до следующего целого числа.
Вот пример:
x = 30 // 11 print(x) # 2
Целочисленное подразделение Python 2 VS 3
Python 2.x делит два целых числа, используя Целочисленное разделение , также известный как Пол Дивизион Поскольку он применяет функцию пола после обычного разделения на «вокруг него», поэтому он оценивает выражение 5/2 к 2 Отказ В Python 3 Integer Division выполняется с использованием двойной фронта SORFSLASH 5//2 который оценивает 2 Отказ Одиночная фронтслаш для отдела пола «/» амортизируется в Python 2.2+ и Python 3.
Вот код для целочисленного разделения в Python 2 с использованием одного оператора FrontsLash / :
# Python 2 print(10/3) # 3
И вот код для целочисленного подразделения в Python 3 с использованием оператора двойного обратного косания // :
# Python 3 print(10//3) # 3
Интерактивная оболочка + головоломка
Вы можете попробовать это в нашей интерактивной Python Shell:
Упражнение : Что такое выход этого фрагмента кода?
Хотя головоломка кажется простым, более двадцати процентов пользователей Finxter не могут ее решить. Вы можете проверить, решите ли вы это правильно здесь: Проверьте свои навыки сейчас!
Арифметические операторы
Арифметические операторы – синтаксические ярлыки для выполнения основных математических операций по номерам.
| Оператор | Имя | Описание | Пример |
| + | Добавление | Расчет суммы двух операндов | 3 + 4 |
| – | Вычитание | Вычитание второго операнда с первого операнда | 4 – 3 |
| * | Умножение | Умножить первый со вторым операндом | 3 * 4 |
| / | Разделение | Разделение первого на второй операнд | 3 / 4.75 |
| % | Модуль | Расчет остатка при делите первого на второй операнд | 7 % 4 |
| // | Целочисленное разделение, напольное разделение | Разделение первого операнда на второй операнд и закругление результата до следующего целого числа | 8 // 3 |
| ** | Экспонент | Поднимая первый операнд на силу второго операнда | 2 ** 3 |
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.