LoginSignup
1
1

More than 3 years have passed since last update.

freeCodeCampでPythonの勉強 part1

Last updated at Posted at 2020-07-12

freeCodeCampのカリキュラムが追加された!

freeCodeCampにおいて、以下のカリキュラムが追加されました。(こちらの記事参照)

  1. Scientific Computing with Python(Pythonでの科学的計算)
  2. Data Analysis with Python(Pythonでのデータ分析)
  3. Information Security(情報セキュリティ)
  4. Machine Learning with Python(Pythonでの機械学習)

せっかくなのでこれを機に勉強しようと思い立った次第。
今回の記事ではScientific Computing with Python(Pythonでの科学的計算)で行ったことを紹介します。

Scientific Computing with Pythonをやってみた

大きくこの分野は以下の二つに分かれていました。

  • Python for Everybody
  • Scientific Computing with Python Projects

Python for EverbodyではPythonとはという部分から、基本構文や、ネットワーク、データベースなどを動画+選択式の問題で学ぶことができました。動画は全て英語なので、字幕や翻訳を使いながらどうにか解読しました。

Scientific Computing with Python Projectsでは実際に問題が出され、コードを書いて提出すると言った形式で学ぶことができます。ローカルに実行環境がなくてもrepel.itというブラウザ上で動く環境が提供されているので安心です。(私はローカルにソースをコピーして書きました)
また、テストコードも用意されており、全てのテストが通れば提出可能になります。

これから数回の記事では、Scientific Computing with Python Projectsで出された問題と、個人的なポイントを紹介していきます。

1問目:Arithmetic Formatter

最終的に欲しいものはarithmetic_arrangerメソッドで、動きは以下の通り

arithmeric_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])

Output:

   32      3801      45      123
+ 698    -    2    + 43    +  49
-----    ------    ----    -----

また、第2引数にbool型の値を指定することができ、Trueの時は計算結果も出力させないといけないです。

実装方針

上パーツ(32 3801 45 123)、
中パーツ(+ 698 - 2 + 43 + 49)、
下パーツ(----- ------ ---- -----)に分けて、最後に\nでつなげる。

皆さんにもトライしていただきたいので、私の実装は載せません…

個人的ポイント: 文字列の右寄せ、中央寄せ、左寄せ

この問題では以下のように、上、中、下パーツが右に揃っている必要があります。

○○○32
+○698
-----

○:空白

そこで文字列メソッドrjust()が使いました。(中央寄せ:center()、左寄せ:ljust())
また、数値を右寄せにしたいときには一度str()で文字列に変換したのちに使います。

私は以下のように右寄せを行いました。

"""
    top_num=32, mid_num=698 
    top_num_len=2, mid_num_len=3
    op='+' or '-'
"""

row_len = max(top_num_len, mid_num_len) + 2 # +と空白1つ分
top = top_num.rjust(row_len)
mid = op + mid_num.rjust(row_len - 1)

最後に

このように、問題を解くと普段あまり使わない物の発見(今回で言えば文字寄せのメソッド)が多いのでとても楽しいです。

次の問題はTime Calculatorです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1