見出し画像

The Complete Python Pro Bootcamp 2023: Day 8/100

  1. 本日のPython Pro Bootcampでは、入力を受け付ける関数の使用により、コードのタスクを容易にする方法を深く探ります。基本的な"greet"関数から名前入力を受け付けるより複雑な"greet_with_name"関数を作成し、パラメータと引数の違いを理解します。

  2. 複数の入力を受け付ける関数の場合、引数の順番が重要となる位置引数と、順番が関係ないキーワード引数の両方について学びます。さらに、壁面積を覆うためのペイント缶の数を計算するプログラムと、素数を確認する機能を作成する2つのコーディングチャレンジに挑戦します。

  3. 一日のハイライトは、古代の暗号化技術であるシーザー暗号をデジタル化するプロジェクトです。暗号化と復号化の機能を一つの効率的な`caesar`関数に統合し、ASCIIアートをロゴとしてインポートしたり、大きなシフト数や特殊文字を処理したり、再起動機能を実装したりします。

Python Pro Bootcampの8日目へようこそ!今日は、入力を持つ関数について深く掘り下げ、どのようにコーディング作業を楽にすることができるかを説明します。また、理解を深め、実践的な経験を積むためのエキサイティングな演習に取り組みます。今日のハイライトは、シーザー暗号として知られる古代の暗号化技術を実装したプログラムを作成することです。それでは、早速始めましょう!

入力のある関数

今日の旅は、入力を受け付ける関数の紹介から始まります。関数は効率的なコーディングツールで、一連の命令を1つのコードブロックにまとめることができます。関数は、「def」キーワードの後に、関数名、括弧、コロンの順に記述して作成することができます。括弧の中には、パラメータと呼ばれる変数を入力として追加することができます。関数を呼び出すとき、実際に渡す値は引数と呼ばれます。

今日一日で、単純な「greet」関数や、名前の入力を受け付ける少し複雑な「greet_with_name」関数など、さまざまなパラメータを持つ関数を作成することになります。これをきっかけに、関数を効果的に使うために習得しておきたい、パラメータと引数の違いについて探っていきます。

位置引数とキーワード引数

入力がある関数の説明では、当然ながら、位置引数とキーワード引数について説明します。関数が複数の入力を受け付ける場合、これらの入力を渡す順序が重要になります。これらは位置引数であり、その順序を間違えると予期せぬ出力につながる可能性があります。

これを緩和するために、Pythonではキーワード引数を使用することができます。ここでは、パラメータ名を使って引数を渡し、順番を関係ないようにします。それぞれの引数をいつ使うか、そのメリットとデメリットを学びます。

コーディングの課題

理論を実践するために、2つのコーディングの課題に取り組みます。1つ目は、壁の面積をカバーするために必要なペンキ缶の数を計算するプログラムを作成するもので、Pythonの `math.ceil` 関数を使用して小数点以下を切り上げるなどの配慮が必要です。

2つ目の演習では、モジュラス演算子、ループ、ブーリアン変数を使って素数チェッカー関数を作成します。これらの演習は、入力と条件処理を持つ関数についての理解を深めるものです。

シーザー・サイファー・プロジェクト

この日のハイライトは、シーザー暗号プロジェクトです。まず、アルファベットの各文字をあらかじめ決められたシフト量だけ前にずらすことでメッセージを符号化します。次に、そのシフト量を逆にして復号化するプロセスを実行します。

次に、暗号化と復号の機能を1つの効率的な「caesar」関数に統合します。この関数は、受け取った入力に応じて、エンコードとデコードの両方のプロセスを処理します。さらに、いくつかのバグに対処し、コードを微調整し、柔軟で堅牢なものにします。

最後に、ロゴとなるアスキーアートのインポート、大きなシフト番号などのエッジケースの処理、エンコード中の数字、記号、スペースの保持、リスタート機能の実装など、プログラムを強化します。

このプロジェクトが終了する頃には、与えられたシフト量でメッセージを暗号化・復号化できる、完全に機能するシーザー暗号プログラムが完成していることでしょう。

モチベーションの維持

Pythonを学ぶ動機は何なのかを考えてみることは、このコースに深く入っていく上で重要です。より良い仕事に就きたいという願望でしょうか?コーディングへの愛ですか?それとも、自分のビジネスを始めたいという願望?それが何であれ、それを書き留めて、目につくところに貼って、毎日のリマインダーとして役立てましょう。あなたのモチベーションをコメント欄で共有し、インスピレーションを与え、刺激を受けることをお勧めします。

次のページへ

前のページへ

「超勇敢なウサギ」へ

この記事が気に入ったらサポートをしてみませんか?