[python] Python에서 “while True”는 무엇을 의미합니까?

def play_game(word_list):
    hand = deal_hand(HAND_SIZE) # random init
    while True:
        cmd = raw_input('Enter n to deal a new hand, r to replay the last hand, or e to end game: ')
        if cmd == 'n':
            hand = deal_hand(HAND_SIZE)
            play_hand(hand.copy(), word_list)
            print
        elif cmd == 'r':
            play_hand(hand.copy(), word_list)
            print
        elif cmd == 'e':
            break
        else:
            print "Invalid command."

무엇이 사실입니까?

나는 ‘true 동안’은 속기라고 생각하지만 무엇을 위해? 변수 ‘hand’에 값이 할당되는 동안? 그리고 변수 ‘hand’에 값이 할당되지 않으면 어떻게 될까요?



답변

while True영원히 루프를 의미합니다. 이 while명령문은 표현식을 가져 와서 루프 본문을 실행하고 표현식이 (부울) “true”로 평가됩니다. True항상 부울 “true”로 평가되어 루프 본문을 무기한 실행합니다. 결국 익숙해지는 관용구입니다! 여러분이 접하게 될 대부분의 언어에는 동등한 관용구가 있습니다.

대부분의 언어에는 일반적으로 루프를 일찍 종료하는 메커니즘이 있습니다. Python breakcmd == 'e'경우 질문의 샘플 의 경우 진술입니다 .


답변

내 질문 : 무엇이 사실입니까?

동안 True입니다 True.

while 루프는 조건식이로 평가되는 한 실행됩니다 True.

True항상로 평가 되기 때문에 True루프는 루프 returns 또는 breaks 내에 무언가가있을 때까지 무한히 실행됩니다 .


답변

내 질문 : 무엇이 사실입니까?

while 문의 () 안에있는 모든 것은 부울로 평가됩니다. 참 또는 거짓으로 변환됨을 의미합니다.

성명에서 고려 while(6 > 5)

먼저 다음과 같은 표현 6 > 5을 평가합니다.truewhile(true)

FALSE, 0, 빈 문자열 “”, null 또는 정의되지 않은 모든 항목은 true로 평가 될 수 있습니다.

내가 처음 프로그래밍을 시작했을 때 나는 같은 if(foo == true)일을했지만, 그것이 사실상 if(foo).

그래서 당신이 while(true)그와 같은 말을 할 때while(true == true)

그래서 당신의 질문에 대답하기 위해 : 참은 참입니다.


답변

while Trueis true-즉 항상. 이것은 무한 루프입니다

여기서 중요한 차이점 True은 특정 유형의 상수 값을 나타내는 언어의 키워드와 수학적 개념 인 ‘true’입니다.


답변

이 맥락에서 나는 그것이 다음과 같이 해석 될 수 있다고 생각한다.

do
...
while cmd  != 'e'


답변

True항상 True이므로 while True영원히 반복됩니다.

while키워드는 식을 소요하고 표현식이 true 인 동안 루프. True항상 참인 표현입니다.

명확한 예로서 다음을 고려하십시오.

a = 1
result = a == 1

여기에, a == 1반환 True, 따라서 넣어 Trueresult. 그 후,

a = 1
while a == 1:
  ...

다음과 같습니다.

while True:
  ...

루프 a내부의 값을 변경하지 않는 경우 while.


답변

공식적으로 는 bool 유형 True의 Python 내장 상수 입니다 .

부울 유형에 부울 연산 을 사용하고 (예를 들어 대화 형 파이썬 프롬프트에서) 숫자 를 부울 유형으로 변환 할 수 있습니다.

>>> print not True
False
>>> print not False
True
>>> print True or False
True
>>> print True and False
False
>>> a=bool(9)
>>> print a
True
>>> b=bool(0)
>>> print b
False
>>> b=bool(0.000000000000000000000000000000000001)
>>> print b
True

그리고 잠재적으로 여러분이 보는 것과 파이썬 컴파일러가 보는 것과 관련된 “가지 잡음”이 있습니다.

>>> n=0
>>> print bool(n)
False
>>> n='0'
>>> print bool(n)
True
>>> n=0.0
>>> print bool(n)
False
>>> n="0.0"
>>> print bool(n)
True

파이썬이 bool 유형을 내부적으로 저장하는 방법에 대한 힌트로 bool 유형을 정수로 변환 할 수 있으며 True는 1과 False 0이됩니다.

>>> print True+0
1
>>> print True+1
2
>>> print False+0
0
>>> print False+1
1

실제로 Python bool유형은 Python 유형의 하위 클래스입니다 int.

>>> type(True)
<type 'bool'>
>>> isinstance(True, int)
True

질문에서 더 중요한 부분은 “무엇입니까 while True?”입니다. ‘참은 무엇인가’이고 중요한 결과 : 거짓이란 무엇인가?

먼저, 배우는 모든 언어에 대해 언어가 ‘참’과 ‘거짓’으로 간주하는 것을 배우십시오. 예를 들어 Python은 Truth를 Perl Truth 와 약간 다르게 간주 합니다. 다른 언어는 참 / 거짓 개념약간 다릅니다 . 나중에 많은 골칫거리를 피하기 위해 다른 작업 및 흐름 제어에 대해 귀하의 언어가 참과 거짓으로 간주하는 것을 파악하십시오!

원하는 것을 찾을 때까지 무언가를 처리하려는 알고리즘이 많이 있습니다. 따라서 무한 루프 또는 무한 루프입니다. 각 언어는 이러한 구조에 대해 고유 한 관용구를 갖는 경향이 있습니다. 다음은 Perl에서도 작동하는 일반적인 C 무한 루프입니다.

for(;;) { /* loop until break */ }

/* or */

while (1) {
   return if (function(arg) > 3);
}

while True:형식은 파이썬에서 루프를 벗어나는 방법이있는 무한 루프에 대해 일반적입니다. 루프에서 벗어나는 방법을 이해하려면 Python 흐름 제어 를 배우십시오 while True. 예를 들어 대부분의 언어와 달리 Python은 else루프에 절을 가질 수 있습니다 . 마지막 링크에 예가 있습니다.