2009-06-07 4 views
37

튜토리얼에는 소수를 찾는 예제가 있습니다.파이썬 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') 
... 

나는 이중 == 평등에 대한 테스트는 것을 이해하지만, 나는 "만약 n 개의 %의 ​​X"부분을 이해하지 않습니다. 마치 각 부분을 구두로 둘러보고 그 문장에 대한 예를 들어 말할 수 있습니다. 하지만 백분율 기호가 어떻게 떨어지는 지 이해할 수 없습니다. "n % x"이 실제로 말하는 것은 무엇입니까?

답변

44

모듈러스 연산자; 왼쪽 값의 나머지를 올바른 값으로 나눈 값을 제공합니다. 같은

3 % 1

3 % 2 1 ((1)의 나머지 3 (2)에 의한 결과를 분할 이후) 같을 것 (1 균등 분할 보낸 3)는 0과 같아야한다.

+0

유클리드 디비전 –

1

파이썬 2.6에서는 '%'연산자가 모듈러스를 수행했습니다. 3.0.1에서 변경했다고 생각하지 않습니다.

나머지 연산자는 두 숫자의 나눗셈의 나머지 부분을 알려줍니다.

1

부서의 모듈러스를 확인합니다. 예를 들어,이 경우 2에서 n까지의 모든 숫자를 반복하고 n이 중간에있는 숫자로 나눌 수 있는지 확인합니다. 간단히 말하면, 주어진 수 n이 소수인지 확인하는 것입니다. (힌트 : n/2까지 확인할 수 있습니다.)

88

%는 인수에 따라 두 가지를 수행합니다. 이 경우 모듈러스 연산자로 사용됩니다. 즉, 인수가 숫자 일 때 첫 번째를 두 번째로 나누고 나머지를으로 반환합니다. 34 % 10 == 4은 34를 10으로 나눈 값이 3이므로 나머지는 4입니다.

첫 번째 인수가 문자열이면 두 번째 인수를 사용하여 형식을 지정합니다. 이것은 조금 관여, 그래서 documentation를 참조 것이지만 단지 예를 들어 :

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

그러나, 문자열 포맷 행동이 문자열.format() 메커니즘에 찬성 Python 3.1의로 보충된다

여기에 설명 된 형식 지정 작업에는 여러 가지 일반적인 오류 (예 : 튜플 및 사전을 올바르게 표시하지 못하는 문제)가 발생하는 다양한 단점이 있습니다. 새로운 str.format() 인터페이스를 사용하면 이러한 오류를 피하는 데 도움이되며 일반적으로보다 강력하고 유연하며 확장 가능한 텍스트 서식 지정 방법을 제공합니다.

고맙게도 거의 모든 새로운 기능을 Python 2.6 이상에서 사용할 수 있습니다.

+1

문자열 형식화 연산자가 파이썬 3에서 제거 된 것 같습니다. –

+2

@David : 그냥 사용되지 않습니다. – SilentGhost

+0

나는 그것도 생각했지만, 내가 둘러 보았을 때 그것을 발견 할 수 없었다. 두 번째 모습이 나타났다. 편집 설명. – SingleNegationElimination

1

모듈러스 연산자. 나머지 두 숫자를 나눌 때.예를 들어

: 사람들이 "파이썬에서 백분율 기호"(내가했던 것처럼)를 검색하여이를 찾을 수 있기 때문에이 동안

>>> 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 
관련 문제