Подтвердить что ты не робот

Что означает знак процента в Python 3.1

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

>>> for n in range(2, 10):
...     for x in range(2, n):
...         if n % x == 0:
...             print(n, 'equals', x, '*', n//x)
...             break
...     else:
...         # loop fell through without finding a factor
...         print(n, 'is a prime number')
...

Я понимаю, что double == является критерием равенства, но я не понимаю часть "if n% x". Как я могу устно пройти через каждую часть и сказать, что делает утверждение для примера. Но я не понимаю, как падает процентный знак. Что означает "если n% x" на самом деле?

4b9b3361

Ответ 1

Оператор модуля; дает оставшуюся часть левого значения, деленное на правильное значение. Как:

3 % 1 будет равно нулю (поскольку 3 равномерно делит на 1)

3 % 2 будет равно 1 (так как разделение 3 на 2 приводит к остатку 1).

Ответ 2

% делает две вещи, в зависимости от своих аргументов. В этом случае он действует как оператор modulo, то есть когда его аргументы являются числами, он делит первый на второй и возвращает остаток. 34 % 10 == 4, поскольку 34, деленный на 10, равен трем, с остатком от четырех.

Если первый аргумент является строкой, он форматирует его, используя второй аргумент. Это немного связано, поэтому я буду ссылаться на документацию, но только как пример:

>>> "foo %d bar"%5
'foo 5 bar'

Однако поведение форматирования строки дополняется как Python 3.1 в пользу строкового механизма .format():

Описанные здесь операции форматирования демонстрируют множество причуд, которые приводят к ряду распространенных ошибок (например, неспособность правильно отображать кортежи и словари). Использование нового интерфейса str.format() помогает избежать этих ошибок, а также обеспечивает более мощный, гибкий и расширяемый подход к форматированию текста.

И, к счастью, почти все новые функции также доступны с версии python 2.6.

Ответ 3

Хотя это немного не по теме, так как люди найдут это, выполнив поиск "знака процента в Python" (как и я), я хотел бы отметить, что знак% также используется для префикса "магической" функции в iPython: https://ipython.org/ipython-doc/3/interactive/tutorial.html#magic-functions

Ответ 4

В python 2.6 оператор "%" выполнил модуль. Я не думаю, что они изменили его в версии 3.0.1.

Оператор modulo сообщает вам остаток от деления двух чисел.

Ответ 5

Он проверяет, является ли по модулю деление. Например, в случае, когда вы повторяете все числа от 2 до n и проверяете, делится ли n на любое из чисел между ними. Проще говоря, вы проверяете, является ли заданное число n простым. (Подсказка: вы можете проверить до n/2).

Ответ 6

Оператор модуля. Остальная часть, когда вы делите два числа.

Пример:

>>> 5 % 2 = 1 # remainder of 5 divided by 2 is 1
>>> 7 % 3 = 1 # remainer of 7 divided by 3 is 1
>>> 3 % 1 = 0 # because 1 divides evenly into 3