0

Знак процента в python

В учебнике приведен пример поиска простых чисел.

Я понимаю, что ****** == является критерием равенства, но я не понимаю часть "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 :

Читайте также:  Ваша организация отключила автоматические обновления windows 10

Например, если вы разделите 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__ чтобы перезаписать расширенное назначение:

Теперь %= явно перезаписывается для работы на месте:

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *