python - while(i%3)该怎么理解?
ringa_lee
ringa_lee 2017-04-18 10:13:14
0
10
2733

在看慕课的课程,有段代码为:

i = 1
while(i % 3): 
    print(i),
    if (i >= 10):
        break
    i += 1

while后面的条件要为真,才能够执行代码块,但是i%3这个代表了什么条件呢?

ringa_lee
ringa_lee

ringa_lee

모든 응답(10)
Peter_Zhu

% 나머지 연산자는 후자가 전자로 나누어지는지 확인하는 것입니다. i%3의 조건은 i가 3으로 나누어지는지 확인하는 것이므로 결과는 0 또는 1뿐입니다. %3 = 0 10% 3 = 1, 기본 연산자, 자세한 내용은 작성자가 확인하실 수 있습니다. 감사합니다

PHPzhong

역사적 문제, 0은 거짓, 0이 아닌 것은 참이므로 while(i%3)while(i%3 != 0)과 동일합니다.

小葫芦

우선 while 문의 조건(i % 3)을 살펴보겠습니다. 위에서 %는 나머지를 찾는다는 뜻이고, i% 3은 i를 3으로 나눈 나머지를 찾는다는 뜻이라고 설명했습니다. while 조건의 의미는 i를 3으로 나눈 나머지가 0보다 크다는 것입니다.
이제 i의 값이 1이라는 것을 알았으므로 while 조건이 성립하여 1을 출력하고, i++ 이후에 i의 값은 다음과 같습니다. 2. 이때 while 조건도 만족하여 루프는 2를 출력합니다.
이때 i의 값은 3이므로 조건을 만족하지 않아 while 루프가 실행되지 않고 빠져 나옵니다. .

阿神

질문님의 질문대로 코드 블록을 실행하려면 while 이후의 조건이 true여야 합니다. i%3의 값이 0이면 false이고 0이 아닌 경우에는 다음 코드 블록이 실행되지 않습니다. 1과 2)는 true와 동일하며, if 문도 동일하게 실행되며, 조건문이 0이면 false이고, 0이 아니면 실행되지 않습니다. 그것은 사실이며 실행됩니다. 이것이 도움이 되기를 바랍니다!

Ty80

i%3의 결과가 나머지를 얻는 것이 아닌가요? 예를 들어 i=3의 결과는 0이고, i=5의 결과는 2이고 조건부 판단을 하면 자동으로 변환됩니다. 부울형으로 3으로 나눌 수 없으므로 계산이 가능하므로 1이든 2이든 입력이 가능하므로 이 질문은 找出10以内不能被3整除的数吧?

을 구해야 합니다.
刘奇

Simple while(i%3)은 i가 3으로 나누어질 때 루프를 건너뛰는 것을 의미합니다.

刘奇

으아아아

과 동일합니다. 으아아아

i % 3은 파이썬에서 모듈러 나눗셈(모듈로) 연산입니다. 정수 피연산자 a의 경우 ba / b * b + a % b == a

을 만족합니다.

a ba % b == 0를 균등하게 나누는 경우에만 가능합니다.

따라서 루프 종료 조건은 i분할 가능 3

입니다.
大家讲道理

으아아아

은 i를 3으로 나눌 수 있을 때 루프가 중지된다는 의미입니다. 0은 거짓이고, 0이 아닌 것은 참이라는 뜻입니다. i%3==0이면 루프가 없습니다.

巴扎黑

i%3 모듈로 계산에는 세 가지 상황이 있습니다. 0 1 2 NaN 정의되지 않은 null 0 "" false에 따라 값이 true 또는 false로 판단되며, 모두 false이고 나머지는 true입니다. 모듈러스가 0이고 false이면 사이클에 들어가지 않습니다.

大家讲道理

3으로 나누어질 때까지 반복하면 루프에서 빠져 나옵니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿