что означает процент в питоне
Как % работает в Python?
Что значит % в расчет? Я не могу понять, что он делает.
18 ответов
Пример 1: 6%2 оценивает в 0 потому что нет остатка, если 6 делится на 2 (3 раза ).
Пример 2: 7%2 значение 1 потому что есть остаток 1 когда 7 делится на 2 ( 3 раза ).
Итак, чтобы подвести итог, это возвращает остаток операции деления, или 0 если нет остатка. Так что 6%2 означает найти остаток 6, разделенный на 2.
несколько не по теме % также используется в операциях форматирования строк, таких как %= для замены значений в строку:
опять же, вне темы, но это, кажется, немного документированная функция, которая заняла у меня некоторое время, чтобы отследить,и Я думал, что это связано с вычислением по модулю питонов, для которого эта страница so занимает высокое место.
модуль является математической операцией, иногда описываемой как » арифметика часов.»Я нахожу, что описание его просто как остатка вводит в заблуждение и сбивает с толку, потому что оно маскирует реальную причину, по которой оно так часто используется в информатике. Он действительно используется для обертывания циклов.
подумайте о часах: Предположим, вы смотрите на часы в «военном» времени, где диапазон времени идет от 0:00 до 23.59. Теперь, если вы хотите, чтобы что-то происходило каждый день в полночь, вы бы хотели, чтобы текущее время mod 24 равняется нулю:
вы можете думать о всех часах в истории, обертывающих вокруг круга 24 часов снова и снова, и текущий час дня-это бесконечно длинное число mod 24. Это гораздо более глубокая концепция, чем просто остаток, это математический способ борьбы с циклами, и это очень важно в информатике. Он также используется для обертывания массивов, что позволяет увеличить индекс и использовать модуль для вернитесь к началу после того, как достигнете конца массива.
выражение, подобное «x % y», вычисляется как остаток «x / y». Правила приоритета похожи на » / «и»*».
[обновление для Python 3]
комментарии пользователя n00p:
9/2-4.5 в python. Вы должны сделать целочисленное деление следующим образом: 9//2 Если вы хотите, чтобы python сказал вам, сколько целых объектов осталось после деления(4).
если быть точным, целое число раньше разделение было по умолчанию в Python 2:
в Python 3 Теперь 9 / 2 результаты 4.5 действительно, но имейте в виду, что оригинальный ответ очень старый.
Что значит //, %, not in, == и другие операторы Python
Операторы – это специальные знаки, которые являются командой для интерпретатора Python по выполнению определенных задач. Они бывают абсолютно разными: арифметическими, операторами сравнения, тождественности, принадлежности и так далее. Все они имеют различные особенности, которые сегодня мы рассмотрим более подробно.
Арифметические операторы Python
Как можно догадаться из названия, арифметические операторы нужны для того, чтобы совершать несложные арифметические операции. К таковым относятся:
Теперь перейдем к описанию принципа работы этих операторов (равно, как и других). Сначала необходимо разобраться в значении слова «операнд». Это те фрагменты информации, над которыми осуществляется операция. В нашем случае – арифметическая.
Но оператор деления по модулю, например, будет использоваться таким образом.
То есть, каждый из описанных выше знаков ставится между операндами. А получившееся выражение может присваиваться другой переменной или же использоваться в качестве аргумента функции.
Операторы присваивания Python
Присваивание значения переменной – одна из самых распространенных операций. С ее помощью можно передавать ей необходимую информацию, которая в дальнейшем может использоваться программой. Без нее невозможно представить программирования. А для большего удобства использования количество операторов присваивания в Python очень большое.
Рассмотрим наиболее распространенные из них.
Тем не менее, в некоторых случаях он может читаться, как знак «равно», но только если речь не идет о сравнении операндов.
Эта простая строчка кода присваивает переменной x значение 5. То есть, она может читаться, как «x равно 5». Но при этом осуществляется не констатация факта, а действие, после которого переменная x становится равной 5. А до этого действия она может как вовсе отсутствовать, так и содержать любое другое значение.
Это единственный оператор этой категории, который выполняет одно действие. Остальные же совершают сразу 2.
Это то же самое, что x = x + 3.
В целом, любой из операторов может быть заменен на аналогичное выражение, где переменная равно переменная, оператор, операнд 2. Дальше мы приведем еще несколько таких примеров для наглядности, и такая же логика будет действовать для всех операторов присваивания.
На практике все значительно проще, чем может показаться, когда вы читали это правило. Оператор –= аналогичен выражению x = x-y. Просто оно более сокращенное.
Оператор *=. Аналог предыдущих двух операторов присваивания, только выполняющий операцию умножения. Соответственно, принцип его работы аналогичный.
В целом, по такому же принципу работают все остальные операторы. Например, есть оператор деления, который также ставится перед знаком равно, а также деление по модулю, остаток от деления и так далее. Давайте приведем таблицу с описанием всех имеющихся операторов сравнения при их соединении с другими.
Операторы сравнения Python
Они используются, чтобы сопоставить операнды друг с другом и понять, они равны, или какое-то из них большее, или меньшее.
Рассмотрим существующие операторы сравнения.
Равно (==). Как и говорилось выше, этот оператор выглядит несколько иначе, чем оператор присваивания. Выглядит он, как два математических знака «равно», стоящих вместе. Он проверяет равенство двух операндов, и в случае соблюдения этого критерия возвращает значение «истина».
Не равно (!=). Также отличается от аналогичного арифметического знака в математике. Противоположный по значению оператор. Возвращает истину, если указанный выше критерий не соблюдается.
Больше, чем (>) и меньше, чем ( Операторы, аналогичные таковым в математике.
Больше или равно (>=) и меньше или равно ( Аналоги соответствующих операторов в математике с несколько иным описанием.
Приведем сводную таблицу со значениями и примерами использования этих операторов.
Логические операторы Python
Предназначены для связывания объектов между собой. Используются для задания условия, при котором выполняются определенные действия или для указания критерия, при котором выполняется цикл или осуществляется выход из него. Всего существует три логических оператора в этом языке программирования
И (and). Объединяет условия между собой. Если оба критерия оказываются верными, оператор возвращает значение «истина». Если же нет, то «ложь».
ИЛИ (or). Проверяет истинность хотя бы одного из указанных операндов. Если из них есть один, который соответствует действительности, то возвращается значение «истина». Если же нет, то «ложь».
Приведем сводную таблицу с примерами использования этих операторов, а также их значениями.
Операторы тождественности Python
Если требуется сравнить несколько объектов между собой, используются операторы тождественности. При этом они отличаются по принципу действия от операторов сравнения с тем, поскольку критерием для тождественности является нахождение операндов в одной и той же части памяти.
Есть всего два оператора тождественности:
Приведем наглядную таблицу с описанием использования операторов тождественности в Python.
Операторы принадлежности Python
Python также умеет раскладывать объекты на составляющие и проверять, является ли один объект составной частью другого. Типичный пример использования – строки. Например, с их помощью можно проверять, является ли одна подстрока составной частью другой подстроки. Соответственно, возвращается логический результат, предусмотренный подходящим оператором.
Приведем небольшую таблицу с примерами использования этих операторов (вернее, шаблонами), а также – их значениями.
Побитовые операторы Python
Самая сложная для понимания категория операторов. Настолько сложная, что для этого нужно отдельно рассматривать принцип работы каждого из них. Ведь каждый работает по определенным формулам. Они поддаются логике, она будет указана в таблице ниже. Тем не менее, это все равно довольно сложно.
Начнем с того, что они работают с битами. То есть, с нулями и единицами, а не привычными значениями. Например, оператор & каждый бит делает единицей лишь при условии, что каждый бит операндов на соответствующих позициях равен единице.
Вот более подробная таблица с использованием этих операторов.
Мы разобрались с самыми часто используемыми операторами в Python, а также рядом других, сфера применения которых более ограниченная. Следует отметить, что операторы – это одна из самых простых тем в программировании. Они почти не отличаются от привычных нам математических знаков, просто список символов, которые используются, несколько больше. При этом принцип их работы доступен для понимания каждому новичку. Единственное исключение – побитовые операторы, которые заслуживают отдельного рассмотрения.
Знак процента в python
В учебнике приведен пример поиска простых чисел.
Я понимаю, что ****** == является критерием равенства, но я не понимаю часть «if n% x». Как я могу устно пройти через каждую часть и сказать, что делает утверждение для примера. Но я не понимаю, как падает процентный знак. Что означает «если n% x» на самом деле?
Оператор модуля; дает оставшуюся часть левого значения, деленное на правильное значение. Как:
3 % 1 будет равно нулю (поскольку 3 равномерно делит на 1)
3 % 2 будет равно 1 (так как разделение 3 на 2 приводит к остатку 1).
Если первый аргумент является строкой, он форматирует его, используя второй аргумент. Это немного связано, поэтому я буду ссылаться на документацию, но только как пример:
Описанные здесь операции форматирования демонстрируют множество причуд, которые приводят к ряду распространенных ошибок (например, неспособность правильно отображать кортежи и словари). Использование нового интерфейса str.format() помогает избежать этих ошибок, а также обеспечивает более мощный, гибкий и расширяемый подход к форматированию текста.
И, к счастью, почти все новые функции также доступны с версии python 2.6.
в учебнике есть пример поиска простых чисел:
Я понимаю, что двойные == – Это тест на равенство, но я не понимаю if n % x часть. Как будто я могу устно пройти через каждую часть и сказать, что делает утверждение для примера. Но я не понимаю, как падает знак процента.
что значит if n % x на самом деле сказать?
8 ответов
оператор модуля; дает остаток левого значения, разделенного на правое значение. Например:
3 % 1 будет равно нулю (так как 3 делится равномерно на 1)
3 % 2 будет равно 1 (так как деление 3 на 2 приводит к остатку 1).
% делает две вещи, в зависимости от его аргументов. В этом случае он действует как оператор по модулю, то есть, когда его аргументы являются числами, он делит первый на второй и возвращает остаток. 34 % 10 == 4 так как 34 делится на 10-это три, а остальные четыре.
если первый аргумент является строкой, он форматирует его, используя второй аргумент. Это немного связано, поэтому я буду ссылаться на документация, но только в качестве примера:
операции форматирования, описанные здесь, демонстрируют различные причуды, которые приводят к ряду распространенных ошибок (таких как неправильное отображение кортежей и словарей). Использование нового str.format() интерфейс помогает избежать этих ошибок, а также обеспечивает в целом более мощный, гибкий и расширяемый подход к форматированию текста.
и, к счастью, почти все новые функции также доступны с python 2.6 и далее.
хотя это немного не по теме, так как люди найдут это, ища » процентный знак в Python «(как и я), я хотел отметить, что знак % также используется для префикса» волшебной » функции в iPython:https://ipython.org/ipython-doc/3/interactive/tutorial.html#magic-functions
что означает знак процента означает?
это оператор в Python, который может означать несколько вещей в зависимости от контекста. Многое из того, что следует ниже, уже упоминалось (или намекалось) в других ответах, но я подумал, что было бы полезно предоставить более подробное резюме.
% для чисел: операция по модулю / остаток / отдых
таким образом, он дает вам остаток/остаток, что остается если вы «разделяете пол» x на y. Обычно (по крайней мере, в Python) задается число x и делитель y :
например, если разделить 5 на 2:
в общем случае вы используете операцию по модулю, чтобы проверить, делится ли число равномерно на другое число, это потому, что кратные числа по модулю это число возвращает 0:
вот как он используется в вашем примере, он не может быть простым, если он кратен другому числу (кроме себя и одного), вот что это делает:
если вы чувствуете, что n % x == 0 не очень описательно, вы можете поместить его в другую функцию с более описательным именем:
вместо is_multiple он также может быть назван evenly_divides или что-то подобное. Вот что здесь проверено.
похож на это часто используется для определения, является ли число «нечетным»или » четным»:
и в некоторых случаях он также используется для индексирования массива/списка, когда требуется обертывание (циклическое) поведение, тогда вы просто по модулю «индекс» по «длине массива» для достижения этого:
обратите внимание, что в стандартной библиотеке есть также функция для этого оператора operator.mod (и псевдоним operator.__mod__ ):
% для строк: printf стиль форматирования строк
для строк значение совершенно другое, вот оно в одну сторону (на мой взгляд, самый ограниченный и уродливый) для форматирования строк:
здесь % в строке представляет собой заполнитель, за которым следует спецификация форматирования. В этом случай я использовал %s что означает, что он ожидает строку. Затем за строкой следует % что означает, что строка с левой стороны будет отформатирована с правой стороны. В этом случае первый %s заменяется первым аргументом this и второй %s заменяется вторым аргументом ( good ).
обратите внимание, что есть гораздо лучшие (возможно, основанные на мнении) способы форматирования строк:
% in Jupyter / IPython: магические команды
для пользователей Jupyter: магия специфична и предоставляется ядром IPython. Доступны ли магии в ядре-это решение, которое принимается разработчиком ядра на основе каждого ядра. Чтобы правильно работать, магия должна использовать синтаксический элемент, который недопустим в базовом языке. Например, ядро IPython использует % элемент синтаксиса для магии, как % не является допустимым унарным оператором в Python. В то время как элемент синтаксиса имеет значение в других языках.
это регулярно используется в ноутбуках Jupyter и подобных:
на % оператор на массивах (в экосистеме NumPy / Pandas)
на % оператор по-прежнему является оператором по модулю при применении к этим массивам, но он возвращает массив, содержащий остаток каждого элемента в массив:
настройка % оператор для ваших собственных классов
конечно, вы можете настроить, как работают ваши собственные классы, когда % оператор применяется к ним. Как правило, вы должны используйте его только для реализации операций по модулю! Но это руководство, а не жесткое правило.
просто предоставить простой пример, который показывает, как это работает:
этот пример не очень полезный, он просто печатает и затем делегирует оператору сохраненное значение, но он показывает, что __mod__ называется, когда % применяется к экземпляру:
обратите внимание, что он также работает для %= без явной необходимости внедрения __imod__ :
однако вы также можете реализовать __imod__ явно перезаписать дополненное назначение:
теперь %= явно переписаны для работы на месте:
в python 2.6 оператор » % «выполнил модуль. Я не думаю, что они изменили его в 3.0.1
оператор по модулю сообщает вам остаток деления двух чисел.
Он проверяет, если по модулю деления. Например, в случае, если вы перебираете все числа от 2 до n и проверить, если N делится на любое из чисел между ними. Проще говоря, вы проверяете, является ли данное число n простым. (Подсказка: вы можете проверить до n/2).
оператор модуля. Остальное при делении на два числа.
Blockquote x % n ==0 это означает, что x / n и значение напоминания будут взяты в результате и сравниваться с нулем.
В уроке есть пример для поиска простых чисел:
Я понимаю, что double == – это тест на равенство, но я не понимаю, if n % x part. Как я могу устно пройтись по каждой части и сказать, что утверждение делает для примера. Но я не понимаю, как знак процента падает.
Что if n % x самом деле говорит?
8 ответов
Оператор модуля; дает остаток от левого значения, деленного на правое значение. Подобно:
3 % 1 будет равно нулю (так как 3 делится равномерно на 1)
3 % 2 будет равно 1 (поскольку деление 3 на 2 приводит к остатку от 1).
Операции форматирования, описанные здесь, демонстрируют различные причуды, которые приводят к ряду распространенных ошибок (таких как неправильное отображение кортежей и словарей). Использование более нового интерфейса str.format() помогает избежать этих ошибок, а также обеспечивает в целом более мощный, гибкий и расширяемый подход к форматированию текста.
И, к счастью, почти все новые функции также доступны начиная с версии Python 2.6.
Хотя это немного не по теме, поскольку люди найдут это, выполнив поиск «знак процента в Python» (как я это сделал), я хотел отметить, что знак% также используется для добавления префикса к «волшебной» функции в iPython: https : //ipython.org/ipython-doc/3/interactive/tutorial.html#magic-functions
Это оператор в Python, который может означать несколько вещей в зависимости от контекста. Многое из того, что следует, уже упоминалось (или намекалось) в других ответах, но я подумал, что было бы полезно предоставить более обширное резюме.
% для чисел: операция по модулю / остаток / остаток
Таким образом, он дает вам остаток / остаток, который остается, если вы «разделите пол» x на y. Обычно (по крайней мере, в Python) задается число x и делитель y :
Например, если вы разделите 5 на 2:
Обычно вы используете операцию по модулю, чтобы проверить, делит ли число поровну на другое число, потому что по числу, кратному числу, это число возвращает 0:
Вот как он используется в вашем примере, он не может быть простым, если он кратен другому числу (кроме себя и одного), вот что он делает:
Если вы чувствуете, что n % x == 0 не очень наглядно, вы можете поместить его в другую функцию с более наглядным названием:
Вместо is_multiple его также можно назвать evenly_divides или что-то подобное. Вот что здесь тестируется.
Подобно тому, как это часто используется, чтобы определить, является ли число «нечетным» или «четным»:
А в некоторых случаях он также используется для индексации массивов / списков, когда требуется поведение циклического (циклического) перебора, тогда вы просто модулируете «index» на «length массива», чтобы достичь этого:
Обратите внимание, что в стандартной библиотеке operator.mod (и operator.__mod__ псевдонима operator.__mod__ ) есть функция для этого оператора:
Но есть также расширенное присваивание %= которое присваивает результат переменной:
Для строк значение совершенно иное, есть один способ (на мой взгляд, самый ограниченный и некрасивый) для форматирования строк:
Здесь % в строке представляет собой заполнитель, за которым следует спецификация форматирования. В этом случае я использовал %s что означает, что он ожидает строку. Затем за строкой следует % что указывает на то, что строка слева будет отформатирована правой стороной. В этом случае первый %s заменяется первым аргументом this а второй %s заменяется вторым аргументом ( good ).
Обратите внимание, что есть намного лучшие (вероятно, основанные на мнении) способы форматирования строк:
% в Jupyter / IPython: магические команды
Для пользователей Jupyter: Магия специфична для ядра IPython и предоставляется им. Доступность магий в ядре – это решение, принимаемое разработчиком ядра для каждого ядра. Для правильной работы Magics должен использовать синтаксический элемент, который недопустим в базовом языке. Например, ядро IPython использует элемент синтаксиса % для магии, поскольку % не является допустимым унарным оператором в Python. В то время как элемент синтаксиса имеет значение в других языках.
Это регулярно используется в ноутбуках Jupyter и подобных:
Оператор % на массивах (в экосистеме NumPy / Pandas)
Оператор % по-прежнему является оператором по модулю при применении к этим массивам, но он возвращает массив, содержащий остаток от каждого элемента в массиве:
Настройка оператора % для ваших собственных классов
Просто чтобы привести простой пример, который показывает, как это работает:
Этот пример не очень полезен, он просто печатает и затем делегирует оператор сохраненному значению, но показывает, что __mod__ вызывается, когда % применяется к экземпляру:
Обратите внимание, что он также работает для %= без необходимости явной реализации __imod__ :
Однако вы можете также явно реализовать __imod__ чтобы перезаписать расширенное назначение:
Теперь %= явно перезаписывается для работы на месте:
Что означает знак процента в Python
В учебнике есть пример для поиска простых чисел:
Что if n % x на самом деле говорит?
8 ответов
Оператор модуля; дает остаток от левого значения, деленного на правое значение. Подобно:
3 % 1 будет равен нулю (так как 3 делится равномерно на 1)
3 % 2 будет равен 1 (поскольку деление 3 на 2 приводит к остатку от 1).
Он проверяет, является ли модуль делением. Например, в случае, если вы перебираете все числа от 2 до n и проверяете, делится ли n на любое из промежуточных чисел. Проще говоря, вы проверяете, является ли данное число n простым. (Подсказка: вы можете проверить до n / 2).
Если первый аргумент является строкой, он форматирует ее, используя второй аргумент. Это немного сложно, поэтому я буду ссылаться на документацию, но только в качестве примера:
Операции форматирования, описанные здесь, обнаруживают различные причуды, которые приводят к ряду распространенных ошибок (таких как неправильное отображение кортежей и словарей). Использование нового str.format() помогает избежать эти ошибки, а также обеспечивает в целом более мощный, гибкий и расширяемый подход к форматированию текста.
И, к счастью, почти все новые функции также доступны начиная с версии Python 2.6.
Оператор модуля. Остаток при делении двух чисел.
В python 2.6 оператор ‘%’ выполнил модуль. Я не думаю, что они изменили его в 3.0.1
Оператор по модулю сообщает вам остаток от деления двух чисел.
Это оператор в Python, который может означать несколько вещей в зависимости от контекста. Многое из того, что следует, уже упоминалось (или намекалось) в других ответах, но я подумал, что было бы полезно предоставить более обширное резюме.
% для чисел: операция по модулю / остаток / отдых
Например, если вы разделите 5 на 2:
В общем случае вы используете операцию по модулю, чтобы проверить, делит ли число поровну на другое число, потому что по числу, кратному числу, это число возвращает 0:
Вот как он используется в вашем примере, он не может быть простым, если он кратен другому числу (кроме себя и одного), вот что он делает:
Если вы чувствуете, что n % x == 0 не очень описательный, вы можете поместить его в другую функцию с более описательным именем:
Вместо is_multiple его также можно назвать evenly_divides или что-то подобное. Вот что здесь тестируется.
Подобно тому, как это часто используется, чтобы определить, является ли число «нечетным» или «четным»:
И в некоторых случаях он также используется для индексации массивов / списков, когда требуется поведение циклического (циклического) перебора, тогда вы просто модулируете «index» на «length массива», чтобы достичь этого:
Обратите внимание, что в стандартной библиотеке есть также функция для этого оператора operator.mod (и псевдоним operator.__mod__ ):
% для строк: printf форматирование строк в стиле
Для строк значение совершенно иное, есть один способ (на мой взгляд, самый ограниченный и безобразный) для форматирования строк:
Обратите внимание, что есть гораздо лучшие (возможно, основанные на мнении) способы форматирования строк:
% в Jupyter / IPython: магические команды
Это регулярно используется в ноутбуках Jupyter и подобных:
Оператор % для массивов (в экосистеме NumPy / Pandas)
Оператор % по-прежнему является оператором по модулю при применении к этим массивам, но он возвращает массив, содержащий остаток каждого элемента в массиве:
Настройка оператора % для ваших собственных классов
Просто чтобы привести простой пример, который показывает, как это работает:
Этот пример не очень полезен, он просто печатает и затем делегирует оператор сохраненному значению, но он показывает, что __mod__ вызывается, когда % применяется к экземпляру:
Обратите внимание, что это также работает для %= без явной необходимости реализовать __imod__ :
Однако вы также можете явно реализовать __imod__ для перезаписи расширенного присваивания:
Теперь %= явно перезаписан для работы на месте: