i = 0 while i < 10: print(f"{i}번째 반복입니다.") i += 1 이렇게 적으면 9번째 반복입니다까지 나오는데, i+=1 이 print 함수보다 윗 줄에 나와야되는거 아닌가 싶은 생각이 자꾸드는데요 그래서 그렇게 해보면 10번째 반복입니다까지 나옵니다. 초보라 아직 ㅠ 차이가 왜 있는 걸 까요? 뭔가 프린트 함수보다 윗 줄에 있어야 코드가 이쁠 거 같은데요 초보가 보기에는 ㅠ
선생님 질문 있습니다. p.243 에서 time.time() 함수를 이용해서 5초동안 반복하는 코드가 있는데요. 여기서 코드의 흐름 중에 질문이 있습니다. target_tick = time.time() + 5 while time.time() < target_tick : number += 1 print("5초동안 {}번 반복했습니다.".format(number)) time.time() 함수는 세계 표준시로부터 몇 초가 지났는지를 나타내는 함수라고 하셨는데요, 이 코드에서 1행에서 target_tick 변수를 선언할 때 적용된 time.time() 함수는 코드를 시작하여 이 변수가 선언되는 '바로 그 순간'까지 몇 초가 지났는지를 표현할 텐데요, 2행에서 반복문이 시작되어 반복을 진행하는 동안에 대소를 구분하는 time.time()의 값은 변화하면서, 왜 target_tick 변수 안에 넣어진 time.time()의 값은 변화하지 않는 것인가요? 변수 안에 넣어진 time.time() 값이 변화하지 않아야만 5초동안 반복할 수 있는 것 아닌가요? 둘 다 같이 변화한다면 영원히 불 표현식은 참일 테니까요. 이 부분이 이해가 가지 않습니다.
time.time()은 호출하는 순간의 시간을 숫자로 만듭니다. 따라서 target_tick = time.time() + 5라고 하면 "이 코드가 실행되는 순간의 시간"이 target_tick에 들어갑니다. [즉 한 번 들어간 이후 값이 바뀌지 않습니다] . while 반복문은 (1) 조건식 부분의 코드를 실행해서 확인 (2) 내부의 코드를 실행 (3) 다시 (1)번으로 돌아감 을 반복합니다. 따라서 계속해서 time.time()을 계속 수 십 만 번 호출합니다. . 그래서 while 반복문 조건식의 time.time()은 계속해서 호출되기 때문에 시간이 계속 바뀝니다!
선생님, 오늘도 많이 배우고 갑니다! 좋은 주말 되세요!!
완료
안녕하세요. 감사히 잘 봤어요.
3회차 반복해요.
2023년 8월 15일 화 17시42분 태평양 시간
안녕하세요. 감사히 잘 봤어요.
전체 영상 마치고 다시 반복해서 기억지속하려 해요.
2023년 7월 15일 토 0시32분 태평양 시간
2024.08.16 완료
점점 어려워지네요 ㅠ
+5라는 것은 5초를 더하라는 것인지 여기서 5는 어떤 의미인가요?
5초를 더하면 시작시간에서 5초를 더하는 결과과 이해가 안되요 시간을 어떻게 계산하는지요~
초 단위로 현재 시간이 나오므로
5를 더하면 "현재 시간에서 5초를 더한 시간"이 나옵니다!
i = 0
while i < 10:
print(f"{i}번째 반복입니다.")
i += 1
이렇게 적으면 9번째 반복입니다까지 나오는데, i+=1 이 print 함수보다 윗 줄에 나와야되는거 아닌가 싶은 생각이 자꾸드는데요
그래서 그렇게 해보면 10번째 반복입니다까지 나옵니다.
초보라 아직 ㅠ 차이가 왜 있는 걸 까요? 뭔가 프린트 함수보다 윗 줄에 있어야 코드가 이쁠 거 같은데요 초보가 보기에는 ㅠ
코드는 위에서 아래로 차례대로 실행됩니다.
따라서
(1) 출력하고 1 더하는 코드
(2) 1 더하고 출력하는 코드
는 완전히 다릅니다.
왜 윗줄에 나와야 한다고 생각하는지 조금 더 자세히 설명해주실 수 있을까요?
참고로 위에 있으나 아래 있으나 결국 10번 반복합니다.
선생님 질문 있습니다.
p.243 에서 time.time() 함수를 이용해서 5초동안 반복하는 코드가 있는데요.
여기서 코드의 흐름 중에 질문이 있습니다.
target_tick = time.time() + 5
while time.time() < target_tick :
number += 1
print("5초동안 {}번 반복했습니다.".format(number))
time.time() 함수는 세계 표준시로부터 몇 초가 지났는지를 나타내는 함수라고 하셨는데요,
이 코드에서
1행에서 target_tick 변수를 선언할 때 적용된 time.time() 함수는 코드를 시작하여 이 변수가 선언되는 '바로 그 순간'까지 몇 초가 지났는지를 표현할 텐데요,
2행에서 반복문이 시작되어 반복을 진행하는 동안에 대소를 구분하는 time.time()의 값은 변화하면서, 왜 target_tick 변수 안에 넣어진 time.time()의 값은 변화하지 않는 것인가요?
변수 안에 넣어진 time.time() 값이 변화하지 않아야만 5초동안 반복할 수 있는 것 아닌가요?
둘 다 같이 변화한다면 영원히 불 표현식은 참일 테니까요.
이 부분이 이해가 가지 않습니다.
time.time()은 호출하는 순간의 시간을 숫자로 만듭니다.
따라서 target_tick = time.time() + 5라고 하면
"이 코드가 실행되는 순간의 시간"이 target_tick에 들어갑니다.
[즉 한 번 들어간 이후 값이 바뀌지 않습니다]
.
while 반복문은
(1) 조건식 부분의 코드를 실행해서 확인
(2) 내부의 코드를 실행
(3) 다시 (1)번으로 돌아감
을 반복합니다. 따라서 계속해서 time.time()을 계속 수 십 만 번 호출합니다.
.
그래서 while 반복문 조건식의 time.time()은 계속해서 호출되기 때문에 시간이 계속 바뀝니다!
while을 구지 써야되나~ 싶었는데.
상태를 알 수 없을때 조건의 시점까지 반복해라 라면은..... 뭔지 알것같네요.
감사합니다~
안녕하세요. 감사히 잘 봤어요.
2023년 7월 6일 목 21시43분 태평양 시간
2023.12.11 ✔️