2017-01-07 2 views
0

그래서 파이썬에서 카운트 다운 타이머를 만들려고합니다. 그러나 현재 인쇄 된 숫자를 그 다음으로 낮은 숫자로 바꾸려는 데 어려움을 겪고 있습니다. 예를 들어, 30이 인쇄되고, 29가 그것을 대체하고, 28이 그것을 대체 할 것입니다.파이썬 3에서 타이머 만들기

def timer(): 
# I haven't made the counting down yet(sorry) 
for i in range(30): 
    print(i, end = '\r') 

누구든지 도움이된다면 도움이 될 것입니다.

+0

"다음 최저 숫자"란 무엇을 의미 할 수 있습니까? – soundslikeodd

+0

제가 말한 것은 인쇄 된 항목이 30 일 것입니다. 그러면 29, 28, 28 등으로 대체됩니다. – rbhog

+0

두 번째 눈금에서 이전 숫자를 "덮어 쓰"원합니다. 이 올바른지? – soundslikeodd

답변

2

모든 매개 변수와 함께 범위 함수를 사용해야합니다.

범위 (시작, 중지 [단계])

이 등차 수열을 포함 리스트를 생성하는 다목적 기능이다. 가장 자주 사용되는 루프는 입니다. 인수는 일반 정수 여야합니다. step 인수가 이 생략되면 기본값 1로 설정됩니다. 시작 인수가 생략되면 의 기본값은 0입니다. 전체 형식은 일반 정수 목록 [start, start + step, start + 2 * step,. ..]. step이 양수이면 마지막으로 요소가 stop보다 작은 최대 start + i * 단계가됩니다. 단계가 음수이면 마지막 요소는 가장 작은 시작 + i * 단계 인 stop보다 큽니다. 당신은 좋은 옵션이 캐리지 리턴 사용하는 것입니다 바꾸려면

단계는 제로가 아니어야합니다 (그렇지 않으면 ValueError를가 발생) : "\ r에" 및 인쇄 끝을 변경 "\n"""

import time 

for x in range(30, 0, -1): 
    print("\r %d" % x, end="") 
    time.sleep(1) 
+0

왜'\ r'가 트릭을하는지 설명을 추가 할 수 있습니다. 그리고 이미 여기에서와 같이 출력이 다른 것보다 길 때주의하십시오. –

+0

@eyllanesc 제안에 감사드립니다. 내가 생각한 것은 30 개가 삭제 된 다음 29 개가 같은 줄에 표시된다는 것입니다. 그게 가능하니? – rbhog