見出し画像

python coding : 階段を作るブロック数(レベル⭐️)

notebookを元に、chatGPTが書きました。



プログラミングで、「目に見える形の結果を得る」ことほどワクワクするものはありません。特に、初心者の皆さんにとっては、Pythonを使って「どんな面白いことができるのか」を実感できる瞬間が大切です。今回の課題はブロックを使って階段を作るシンプルなプログラム。ブロックが積み上がり、段数が増えていく様子を見ながら、「Pythonってこんなこともできるんだ!」と驚きと達成感を味わってください。


1. ブロックの階段にチャレンジ!

まず、想像してみてください。ブロックを1つずつ積み上げて階段を作るイメージです。1段目はブロック1つ、2段目はブロック2つ、3段目は3つ…と増えていきます。
課題: 数字を入力すると、積み上げられる最大の段数を教えてくれる関数を作りましょう。例えば「8」を入力すると、「3段目まで積み上げることができる」と出力する関数です!
この課題には、「繰り返し」や「条件」の考え方が活きています。試しながらブロックの階段を完成させていきましょう。


2. Step by Stepで挑戦!

1つずつブロックを積み上げるプロセスは、思わず「やった!」と言いたくなる喜びを感じさせてくれるはずです。以下のコードを動かしながら、1段ずつ増える達成感を味わってください。

blocks_used = 0  # 使用したブロックの合計
stairs = 5  # 完成する段数
for i in range(stairs + 1):
    blocks_used += i  # 新しい段のブロック数を追加
    print(f"stairs: {i}, blocks_used: {blocks_used}"

出力結果から、段が増えるたびに必要なブロックの数が増えていくのを確認できます。試行錯誤しながらも「次の段もいけるかな?」と進んでいく楽しさを感じられるでしょう。


3. 実際にブロックを積んでいく

次に、ブロックを用意して階段をどこまで積めるか確認してみましょう。以下のコードを使えば、何段目まで積めるのかがわかります。

n = 14  # 用意するブロック数
blocks_used = 0
stairs = 0
while blocks_used + (stairs + 1) <= n:  # 1段追加した数で判断
    stairs += 1
    blocks_used += stairs
    print(f"stairs: {stairs}, blocks_used: {blocks_used}, remaining_blocks: {n - blocks_used}")
print(f"Final answer: {stairs}")

このステップでのポイント

条件を少し工夫するだけで、無駄なくブロックを積み上げられるようになります。「Pythonはどうやって判断しているのか」を知ることで、プログラムが自動で動く仕組みを理解する一歩です。ここで、思わず「おお、できた!」と感じてもらえることでしょう。


4. 自分の関数を作ろう!

ここまで来たら、コードを関数にまとめましょう。これで、どんなブロック数を入力しても、正確な階段の段数が返ってくるようになります。

def block_stairs_sequential(n):
    stairs = 0  # 完成した段数
    blocks_used = 0  # 使用したブロックの合計

    while blocks_used + (stairs + 1) <= n:
        stairs += 1
        blocks_used += stairs
    return stairs

この関数を作成することで、ブロック数さえ指定すればどんな階段でも積み上げられる自分だけの「計算ツール」が完成です。自分で考えて書いた関数が動く瞬間は、まさに達成感の極みです!


5. 未来への期待を広げる

さあ、この知識を使って、他にも色々なアイデアに挑戦してみましょう。例えば、階段ではなく「ピラミッド」のような形を作ったり、逆にブロックを削って「谷」を作ったり…。プログラミングの世界は、無限の可能性で広がっています。次に進む学びの中で、あなたがどんな発見をするか楽しみです!


まとめ

この記事を通じて「自分でもできた!」という達成感を味わっていただけたでしょうか?Pythonを使えば、シンプルな考え方から大きなアイデアまで形にすることができます。これからも一歩ずつ進んでいきましょう!


最後に

この記事の課題は、私が師と仰ぐ、
「かめ@米国データサイエンティスト」 さんのコミュニティーの中の coding_challenge の課題を参考にしています。
3年くらい前から、「かめ@米国データサイエンティスト」 さんのブログ、Udemy講座などで、pythonとDSをゆっくり勉強中です。


いいなと思ったら応援しよう!