while 함수 안에서의 난수
, EDDY LEE님이 작성1~6범위에서 3을 뽑으면 그만두겠다는 그런 코드를 while을 통해 작성하면
import random
i = 0
while i != 3:
i = random.randint(1,6)
print(i)
이거라고 하셨는데,
import random
i = 0
while i != 3:
print(i)
i = random.randint(1,6)
이렇게 설정해 놓으면 변화식은 여전히 i=random.randint(1,6)이고,
이 코드 해석은 먼저 i인 0을 뽑고, 그 다음 i를 1~6 사이에서 난수를 뽑겠다. 라는 뜻인가요?
또 이 코드를 실행해보면 i == 3일 때 끝나지 않고 1이나 6에서 끝나는데 왜그런거죠?
질문이 많죠..? ㅠㅠ 죄송합니다..
Re: while 함수 안에서의 난수
, 도장_ 관리자님이 작성i = 0을 삭제하고 실행하면 다음과 같습니다.
Traceback (most recent call last):
File "F:/temp/test.py", line 5, in <module>
while i != 3:
NameError: name 'i' is not defined
마지막 줄 NameError가 발생합니다. 변수 i를 선언하지 않고 사용할 수 없습니다. 따라서 변수 i를 선언하고 초깃값을 0으로 설정한 것입니다.
import random
i = 0
while i != 3:
i = random.randint(1,6)
print(i)
i를 0으로 초기화하고, 난수를 뽑은 다음에 print로 출력합니다.만일 이 둘의 순서를 바꾸면 난수 이전에 초깃값 상태인 i를 출력하기 때문에 0이 출력됩니다.
i가 3일 때 종료되는 것은 맞지만 출력 순서 때문에 혼란이 있는 것 같습니다.