2017-01-07 20 views
0

私はPythonでカウントダウンタイマーを作ろうとしています。しかし、現在の印刷枚数を次に低い枚数に置き換えるのは難しいです。したがって、たとえば30が印刷され、次に29がそれを置き換え、28がそれを置き換えるなどとなります。Python 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で置き換えられます。 – rbhog

+0

2番目のティックで前の数字を「上書き」します。これは正しいです? – soundslikeodd

答えて

2

range関数をすべてのパラメータとともに使用する必要があります。

範囲(開始、停止、[ステップ])

これは等差数列を含む リストを作成するための多目的な機能です。これは、多くの場合、 ループで使用されます。引数は単純な整数でなければなりません。 step引数が を省略すると、デフォルトは1になります。start引数を省略すると、 のデフォルトは0になります。完全な形式では、単純な整数のリストが返されます[start、 start + step、start + 2 * step、 ..]。ステップが肯定的である場合、最後の 要素は、停止より小さい最大の開始+ i *ステップです。ステップが の場合、最後の要素はstopよりも大きい最小開始+ i *ステップ です。あなたは良いオプションがキャリッジリターンを使用することで交換したい場合は

ステップはゼロであってはならない(または他の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

関連する問題