【スクラッチでハッカソン】ポニーテールセットをゲットしよう

オンラインハッカソン
Screenshot
Scratch星人
Scratch星人

早いもので「オンラインハッカソンに挑戦」も、5回目を迎えました。

今回は、難易度は低めですので、解答を見ずに自分の力で頑張ってみましょう。

↓初めから挑戦する場合はこちら↓

「ポニーテールセット」の問題

問題の内容を以下にまとめます。

  • 入力データ:数字(変数nに格納)
  • 出力データ:(3が入力された場合)以下のように出力
3
2
1
0!!
Scratch星人
Scratch星人

あれ?結構簡単そうですね!

ここから下に解答を書くので、まずは、見ずに作成してみてください。

スクラッチで「カウントダウン」するプログラム

ポイントは、入力されたデータを「変数n」に格納した後、同じ値を「変数カウント」に格納して、そちらの変数で-1ずつカウントダウンさせることです。

実は「変数カウント」を作成せず、上記の「カウント」の変数を全て「n」にしても、正常に動作します。

しかし、このような場合、トラブルを避ける意味でも「入力データ格納用」と「カウントダウン用」で変数を分けることをおすすめします。

pythonで解いてみる

Screenshot

上記のコードについて少し解説します。

入力された数字を変数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秒ずつ」数字を言わずに、一瞬で終わってしまうことです。

これでは、面白くないので、スクラッチと同じ状態に作り変えてみます。

Screenshot

上記のコードの1行目に「import time」という記述があります。
これは時間を扱いたいので、import(取り込む)しています。

この「time」のようなものをモジュールと言います。

これからpythonをやってみたいと思っているのであれば、ぜひ覚えておきましょう。

まとめ

「オンラインハッカソンに挑戦」の5回目が終了しました。

今回も比較的簡単な内容でしたが、pythonのモジュールというものを紹介しました。
これは、(厳密には違いますが)スクラッチの拡張機能に近いものと思っていいかもしれません。

「オンラインハッカソンに挑戦」は、あと3回くらいは難易度が低い予定ですが、それ以降は、どんどん難しくなっていきます。

毎月1日に記事を更新しますので、楽しみに待っていてください( ^∀^)

コメント

タイトルとURLをコピーしました