1초씩 증가하는 함수를 만들려면 어떻게 해야하나요

조회수 458회

자유낙하의 자취를 찍는 코드를 짜려고 합니다. 시간간격을 1초로 하고, 이 때의 1초를 datetime.timedelta(seconds=1)로 사용하려고 합니다.

그래서 one_sec=datetime.timedelta(seconds=1)로 하고 더했더니 typeError: unsupported operand type(s) for +: 'int' and 'datetime.timedelta' 이런에러가 뜨더라구요 그래서 one_sec를 문자열로 바꾼후 정수형으로 변환해서 더해봤더니 ValueError: invalid literal for int() with base 10: '0:00:01' 이런 에러가 뜨네요

어떻게 하면 1초를 정수로 인식시킬 수 있을까요??


import datetime


tm=0
 while True:
        d=(9.8*tm**2)/2
        ny=y-int(d)
        one_sec=datetime.timedelta(seconds=1)

        if ny>hl:
            t.goto(x,ny)
            t.stamp()    
            tm=tm+one_sec

        else:
            break



  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 꼭 datetime의 1초를 정수로 변환해서 사용해야 하나요? 그냥 정수 1을 쓰면 안되나요? HIAOAIH 2020.6.12 10:32
  • https://stackoverflow.com/a/5522070 엽토군 2020.6.12 11:34
  • 조건이 파이썬 내의 시간을 이용하는 거에요... 알 수 없는 사용자 2020.6.12 13:13
  • 그렇다면 조건에서 뭔가 놓친 게 있지 않을까요? datetime으로 얻은 1초를 숫자로 바꾸기만 하는 거라면 그냥 1을 쓰는 것과 차이가 없을텐데요. 프로그램 내에서 1초를 세고 실행한다던가요. 작성하신 코드가 간소화하신거일수도 있지만 지금 작성하신대로 하면 프로그램이 그냥 순식간에 끝날거같아요 HIAOAIH 2020.6.12 23:38

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)