Содержание
- 1 8 ответов
- 2 % для чисел: операция по модулю / остаток / отдых
- 3 % для строк: printf стиль форматирования строк
- 4 % in Jupyter / IPython: магические команды
- 5 на % оператор на массивах (в экосистеме NumPy / Pandas)
- 6 настройка % оператор для ваших собственных классов
- 7 8 ответов
- 8 % для чисел: операция по модулю / остаток / остаток
- 9 % для строк: printf -style Форматирование строк
- 10 % в Jupyter / IPython: магические команды
- 11 Оператор % на массивах (в экосистеме NumPy / Pandas)
- 12 Настройка оператора % для ваших собственных классов
В учебнике приведен пример поиска простых чисел.
Я понимаю, что ****** == является критерием равенства, но я не понимаю часть "if n% x". Как я могу устно пройти через каждую часть и сказать, что делает утверждение для примера. Но я не понимаю, как падает процентный знак. Что означает "если n% x" на самом деле?
Оператор модуля; дает оставшуюся часть левого значения, деленное на правильное значение. Как:
3 % 1 будет равно нулю (поскольку 3 равномерно делит на 1)
3 % 2 будет равно 1 (так как разделение 3 на 2 приводит к остатку 1).
% делает две вещи, в зависимости от своих аргументов. В этом случае он действует как оператор modulo, то есть когда его аргументы являются числами, он делит первый на второй и возвращает остаток. 34 % 10 == 4 , поскольку 34, деленный на 10, равен трем, с остатком от четырех.
Если первый аргумент является строкой, он форматирует его, используя второй аргумент. Это немного связано, поэтому я буду ссылаться на документацию, но только как пример:
Однако поведение форматирования строки дополняется как Python 3.1 в пользу строкового механизма .format() :
Описанные здесь операции форматирования демонстрируют множество причуд, которые приводят к ряду распространенных ошибок (например, неспособность правильно отображать кортежи и словари). Использование нового интерфейса 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-это три, а остальные четыре.
если первый аргумент является строкой, он форматирует его, используя второй аргумент. Это немного связано, поэтому я буду ссылаться на документация, но только в качестве примера:
однако поведение форматирования строк дополняется с Python 3.1 в пользу строка .format() механизм:
операции форматирования, описанные здесь, демонстрируют различные причуды, которые приводят к ряду распространенных ошибок (таких как неправильное отображение кортежей и словарей). Использование нового str.format() интерфейс помогает избежать этих ошибок, а также обеспечивает в целом более мощный, гибкий и расширяемый подход к форматированию текста.
и, к счастью, почти все новые функции также доступны с python 2.6 и далее.
хотя это немного не по теме, так как люди найдут это, ища " процентный знак в Python "(как и я), я хотел отметить, что знак % также используется для префикса" волшебной " функции в iPython:https://ipython.org/ipython-doc/3/interactive/tutorial.html#magic-functions
что означает знак процента означает?
это оператор в Python, который может означать несколько вещей в зависимости от контекста. Многое из того, что следует ниже, уже упоминалось (или намекалось) в других ответах, но я подумал, что было бы полезно предоставить более подробное резюме.
% для чисел: операция по модулю / остаток / отдых
знак процента -оператор в Python. Это описано as:
таким образом, он дает вам остаток/остаток, что остается если вы "разделяете пол" 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).
% Делает две вещи, в зависимости от своих аргументов. В этом случае он действует как оператор по модулю, то есть, когда его аргументы являются числами, он делит первое на второе и возвращает остаток . 34 % 10 == 4 так как 34, деленное на 10, равно трем, а остальные четыре.
Если первый аргумент является строкой, он форматирует ее, используя второй аргумент. Это немного связано, поэтому я буду ссылаться на документацию , но просто в качестве примера:
Однако в Python 3.1 поведение форматирования строки добавлено в пользу механизма string .format() :
Операции форматирования, описанные здесь, демонстрируют различные причуды, которые приводят к ряду распространенных ошибок (таких как неправильное отображение кортежей и словарей). Использование более нового интерфейса str.format() помогает избежать этих ошибок, а также обеспечивает в целом более мощный, гибкий и расширяемый подход к форматированию текста.
И, к счастью, почти все новые функции также доступны начиная с версии Python 2.6.
Хотя это немного не по теме, поскольку люди найдут это, выполнив поиск «знак процента в Python» (как я это сделал), я хотел отметить, что знак% также используется для добавления префикса к «волшебной» функции в iPython: https : //ipython.org/ipython-doc/3/interactive/tutorial.html#magic-functions
Это оператор в Python, который может означать несколько вещей в зависимости от контекста. Многое из того, что следует, уже упоминалось (или намекалось) в других ответах, но я подумал, что было бы полезно предоставить более обширное резюме.
% для чисел: операция по модулю / остаток / остаток
Знак процента является оператором в Python . Это описано как:
Таким образом, он дает вам остаток / остаток, который остается, если вы «разделите пол» x на y. Обычно (по крайней мере, в Python) задается число x и делитель y :
Например, если вы разделите 5 на 2:
Обычно вы используете операцию по модулю, чтобы проверить, делит ли число поровну на другое число, потому что по числу, кратному числу, это число возвращает 0:
Вот как он используется в вашем примере, он не может быть простым, если он кратен другому числу (кроме себя и одного), вот что он делает:
Если вы чувствуете, что n % x == 0 не очень наглядно, вы можете поместить его в другую функцию с более наглядным названием:
Вместо is_multiple его также можно назвать evenly_divides или что-то подобное. Вот что здесь тестируется.
Подобно тому, как это часто используется, чтобы определить, является ли число "нечетным" или "четным":
А в некоторых случаях он также используется для индексации массивов / списков, когда требуется поведение циклического (циклического) перебора, тогда вы просто модулируете «index» на «length массива», чтобы достичь этого:
Обратите внимание, что в стандартной библиотеке operator.mod (и operator.__mod__ псевдонима operator.__mod__ ) есть функция для этого оператора:
Но есть также расширенное присваивание %= которое присваивает результат переменной:
% для строк: printf -style Форматирование строк
Для строк значение совершенно иное, есть один способ (на мой взгляд, самый ограниченный и некрасивый) для форматирования строк:
Здесь % в строке представляет собой заполнитель, за которым следует спецификация форматирования. В этом случае я использовал %s что означает, что он ожидает строку. Затем за строкой следует % что указывает на то, что строка слева будет отформатирована правой стороной. В этом случае первый %s заменяется первым аргументом this а второй %s заменяется вторым аргументом ( good ).
Обратите внимание, что есть намного лучшие (вероятно, основанные на мнении) способы форматирования строк:
% в Jupyter / IPython: магические команды
Для пользователей Jupyter: Магия специфична для ядра IPython и предоставляется им. Доступность магий в ядре – это решение, принимаемое разработчиком ядра для каждого ядра. Для правильной работы Magics должен использовать синтаксический элемент, который недопустим в базовом языке. Например, ядро IPython использует элемент синтаксиса % для магии, поскольку % не является допустимым унарным оператором в Python. В то время как элемент синтаксиса имеет значение в других языках.
Это регулярно используется в ноутбуках Jupyter и подобных:
Оператор % на массивах (в экосистеме NumPy / Pandas)
Оператор % по-прежнему является оператором по модулю при применении к этим массивам, но он возвращает массив, содержащий остаток от каждого элемента в массиве:
Настройка оператора % для ваших собственных классов
Конечно, вы можете настроить, как работают ваши собственные классы, когда к ним применяется оператор % . Как правило, вы должны использовать его только для реализации операций по модулю! Но это руководство, а не жесткое правило.
Просто чтобы привести простой пример, который показывает, как это работает:
Этот пример не очень полезен, он просто печатает и затем делегирует оператор сохраненному значению, но показывает, что __mod__ вызывается, когда % применяется к экземпляру:
Обратите внимание, что он также работает для %= без необходимости явной реализации __imod__ :
Однако вы можете также явно реализовать __imod__ чтобы перезаписать расширенное назначение:
Теперь %= явно перезаписывается для работы на месте: