[i for i in range(-9, 10, 2) if not i%3)]
는
> (-9, -3, 3, 9)
는 왜 그 대답을 않는 준다? 'i%3'
의 의미는 무엇입니까?
감사합니다.
[i for i in range(-9, 10, 2) if not i%3)]
는
> (-9, -3, 3, 9)
는 왜 그 대답을 않는 준다? 'i%3'
의 의미는 무엇입니까?
감사합니다.
예에서 %
은 modulo operator입니다. a % b
은 a/b
의 나머지를 반환합니다. 3으로 나누어, 따라서 더 나머지가 없기 때문에 -9
[-9, -7, -5, -3, -1, 1, 3, 5, 7, 9]
-9 % 3
는 0과 같다 :
5 % 3
은 3이 5로 한 번 이동하기 때문에 2를 반환하고
5 - 3 == 2
을 반환합니다.
not i % 3
은 약간 까다 롭습니다. 먼저 i % 3
이 평가됩니다. 결과가 0보다 크면 True
으로 간주됩니다. not
은 부울 값을 가져 오는 부울 연산자입니다. 따라서 not True
은 False
(및 not False is True
)입니다.
0
은 False
으로 간주되므로 i % 3 == 0
인 경우 i
이 새 목록에 포함됩니다. 이제
print("%s %s", ("hello", "world"))
인쇄에 "Hello World"가 그 모듈로 연산자하지 않기 때문에이다. 그게
string formatting입니다. 문서는 나보다 잘 설명 할 것이다 : p. 단지
%
도 사용됩니다.
i%3
은 i
을 3으로 나눌 때 남은 값입니다. 그러나 not
연산자를 사용하면 부울 (true/false) 값으로 변환됩니다. python은 0 false
과 다른 숫자를 true
으로 만들어 이것을 수행합니다. 따라서 i%3
이 0 일 때 not i%3
이 참이됩니다. 즉 i
이 3으로 나눌 수있는 경우입니다.
range(-9,10,2)
은 -9에서 시작하여 0보다 작 으면 2 씩 증가하는 정수를 생성합니다. 즉, -9와 +9 사이의 홀수 정수입니다. 따라서 조합은 -9와 +9 사이의 3으로 나눌 수있는 홀수 정수를 선택하는 것입니다. 정확히 표시 할 정수입니다. (-9, -3, 3, 9)
'mylist = []'는 중복됩니다. 나는 그것을 제거하고 – jamylak