
早いもので「オンラインハッカソンに挑戦」も、5回目を迎えました。
今回は、難易度は低めですので、解答を見ずに自分の力で頑張ってみましょう。
↓初めから挑戦する場合はこちら↓
「ポニーテールセット」の問題

問題の内容を以下にまとめます。
- 入力データ:数字(変数nに格納)
- 出力データ:(3が入力された場合)以下のように出力
3
2
1
0!!

あれ?結構簡単そうですね!
ここから下に解答を書くので、まずは、見ずに作成してみてください。
スクラッチで「カウントダウン」するプログラム

ポイントは、入力されたデータを「変数n」に格納した後、同じ値を「変数カウント」に格納して、そちらの変数で-1ずつカウントダウンさせることです。
実は「変数カウント」を作成せず、上記の「カウント」の変数を全て「n」にしても、正常に動作します。
しかし、このような場合、トラブルを避ける意味でも「入力データ格納用」と「カウントダウン用」で変数を分けることをおすすめします。
pythonで解いてみる

上記のコードについて少し解説します。
入力された数字を変数nに格納
n = int(input())
(n, 0, -1)の意味:入力された数字「n」からスタートして「0」のひとつ前(つまり1)まで「-1」して表示する
for i in range(n, 0, -1):
print(i)
0!!と表示する
print(0!!)
「for」というものが登場しました。
先ほどのスクラッチのコードでいう「カウント回繰り返す」とほぼ同じ意味になります。
pythonで別の方法を実行してみる
上記のコードは正解のコードですが、スクラッチとの違いは「1秒ずつ」数字を言わずに、一瞬で終わってしまうことです。
これでは、面白くないので、スクラッチと同じ状態に作り変えてみます。

上記のコードの1行目に「import time」という記述があります。
これは時間を扱いたいので、import(取り込む)しています。
この「time」のようなものをモジュールと言います。
これからpythonをやってみたいと思っているのであれば、ぜひ覚えておきましょう。
まとめ
「オンラインハッカソンに挑戦」の5回目が終了しました。
今回も比較的簡単な内容でしたが、pythonのモジュールというものを紹介しました。
これは、(厳密には違いますが)スクラッチの拡張機能に近いものと思っていいかもしれません。
「オンラインハッカソンに挑戦」は、あと3回くらいは難易度が低い予定ですが、それ以降は、どんどん難しくなっていきます。
毎月1日に記事を更新しますので、楽しみに待っていてください( ^∀^)
コメント