Pythonでカウントダウンプログラムを作る方法
ページ名:Pythonでカウントダウンプログラムを作る方法
Pythonを始めたばかりなら、カウントダウンタイムを作るのはプログラミングスキルを鍛えるのに最適な方法です。Python 3 で任意の数からゼロまでカウントダウンするプログラムの書き方を紹介します。
1
テキストエディタまたはIDEを開きます。Windowsでは、Pythonと一緒にインストールされているIDLEを使うのが一番簡単です。
2
新しいファイルを開く。多くのテキストエディタでは、ファイルメニューから「New Window」をクリックするか、Ctrl+Nを押すだけで開くことができます。
3
timeモジュールをインポートします。timeモジュールには、時間に関するPython関数がたくさん含まれています。例えば、現在時刻を取得したり、指定した時間だけ待ったりすることができます(このプログラムでは後者が必要です)。モジュールをインポートするには、次のように入力します:
4
カウントダウン関数を定義する。この関数には好きな名前をつけることができるが、通常は何か説明的な名前を使うべきである。この場合、countdown()と名付けることができる。以下のコードを追加する:
5
whileループを書く。whileループは、その条件が真である限り、中のコードを繰り返す。この場合、数字が0になるまでカウントダウンを続けたいので、こう書く必要がある:
- 行頭のスペースに注目してほしい。これはPythonに、この行がカウントダウン関数の定義の一部であり、その下のコードではないことを示す。スペースはいくつ使ってもかまいませんが、一度インデントしたい行の前にも同じ量を使う必要があります。
- 次の行は関数定義の一部であり、whileループの一部でもあるので、2回インデントする必要があります。これは、2倍のスペースを使用することによって行われます。
6
現在の数値を表示する。これはプリンターを使って紙に印刷するという意味ではなく、「印刷」は「画面に表示する」という意味の言葉である。これにより、カウントダウンがどこまで進んでいるかを確認することができる。
7
数字をカウントダウンする。1少なくする。これは次のコードで行う:
また、あまり入力したくない場合は、代わりに次のように書くこともできる:
8
プログラムは1秒待つ。そうしないと、数字のカウントダウンが速すぎて、あなたが読む前にカウントダウンが終わってしまいます。秒待つには、前にインポートしたtimeモジュールのsleep関数を使う:
9
カウントダウンがゼロになったら何かをする。カウントダウンがゼロになったときに "BLAST OFF!"と出力するには、次の行を追加する:
- この行は一度だけインデントされていることに注意。これは、この行がもはやwhileループの一部ではないからである。このコードはwhileループの終了後にのみ実行される。
10
どの数字からカウントダウンを開始するかをユーザーに尋ねる。こうすることで、常に同じ数字からカウントするのではなく、プログラムに柔軟性を持たせることができる。
- ユーザーに質問を表示する。ユーザーは、何を入力すればいいのかを知る必要がある。
print("How many seconds to count down? 整数を入力してください:")
- 答えを取得する。後で何かできるように、答えを変数に格納する。
- ユーザーの答えが整数でない間、ユーザーに別の整数を求めます。これはwhileループでできる。最初の答えがすでに整数だった場合、プログラムはループに入らず、次のコードに進みます。
while not seconds.isdigit(): print("それは整数ではありませんでした!整数を入力してください:") seconds = input()
- これで、ユーザーが整数を入力したことを確認できる。しかし、これはまだ文字列の中に格納されています(input()は常に文字列を返します。)これを整数に変換する必要がある:
もし中身が整数でない文字列を整数に変換しようとしたら、エラーが出るだろう。これが、プログラムが最初に答えが実際に整数かどうかをチェックした理由である。
11
countdown()関数を呼び出す。以前に関数を定義しましたが、関数を定義してもその中に書かれていることは実行されません。実際にカウントダウンのコードを実行するには、ユーザーが入力した秒数を指定してcountdown()関数を呼び出します:
12
完成したコードを確認してください。次のようになるはずだ:
import time def countdown(t): while t > 0: print(t) t -= 1 time.sleep(1) print("BLAST OFF!") print("How many seconds to count down? Enter an integer:") seconds = input() while not seconds.isdigit(): print("That wasn't an integer! Enter an integer:") seconds = input() seconds = int(seconds) countdown(seconds)
- 空行はコードを読みやすくするためにあるだけです。Pythonは空行を無視します。
- お望みなら t -= 1 の代わりに t = t - 1 と書くこともできます。
この記事はCC BY-NC-SAの下で公開されている " How to Make a Countdown Program in Python " を修正して作成しました。特に断りのない限り、CC BY-NC-SAで利用可能です。
シェアボタン: このページをSNSに投稿するのに便利です。
コメント
最新を表示する
NG表示方式
NGID一覧