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분 태평양 시간
완료
while을 구지 써야되나~ 싶었는데.
상태를 알 수 없을때 조건의 시점까지 반복해라 라면은..... 뭔지 알것같네요.
감사합니다~
점점 어려워지네요 ㅠ
안녕하세요. 감사히 잘 봤어요.
2023년 7월 6일 목 21시43분 태평양 시간
2024.08.16 완료
i = 0
while i < 10:
print(f"{i}번째 반복입니다.")
i += 1
이렇게 적으면 9번째 반복입니다까지 나오는데, i+=1 이 print 함수보다 윗 줄에 나와야되는거 아닌가 싶은 생각이 자꾸드는데요
그래서 그렇게 해보면 10번째 반복입니다까지 나옵니다.
초보라 아직 ㅠ 차이가 왜 있는 걸 까요? 뭔가 프린트 함수보다 윗 줄에 있어야 코드가 이쁠 거 같은데요 초보가 보기에는 ㅠ
코드는 위에서 아래로 차례대로 실행됩니다.
따라서
(1) 출력하고 1 더하는 코드
(2) 1 더하고 출력하는 코드
는 완전히 다릅니다.
왜 윗줄에 나와야 한다고 생각하는지 조금 더 자세히 설명해주실 수 있을까요?
참고로 위에 있으나 아래 있으나 결국 10번 반복합니다.
2023.12.11 ✔️
+5라는 것은 5초를 더하라는 것인지 여기서 5는 어떤 의미인가요?
5초를 더하면 시작시간에서 5초를 더하는 결과과 이해가 안되요 시간을 어떻게 계산하는지요~
초 단위로 현재 시간이 나오므로
5를 더하면 "현재 시간에서 5초를 더한 시간"이 나옵니다!
선생님 질문 있습니다.
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()은 계속해서 호출되기 때문에 시간이 계속 바뀝니다!