UoPeopleに入学して初めてのCSのコース
Pythonの基礎の基礎を学びました
このコースで使うテキストはThink Python: How to think like a computer scientist
内容は基礎的ですが、Exerciseで使っているお題が数学的なものもあってやりごたえがありました
Discussion Formu150字、Programming Assignment200字とUNIV1001より書く英語の量が少ないので全体的にUNIV1001より楽だった印象です。
Unit1
Pythonをインストールして、Reading Assignmentを1章だけ読みました。
コードはprintや簡単な四則演算だけですが、用語は学ぶものがありました
- interpreter: プログラムで書かれたソースコードを解釈、実行するプログラム
- prompt: python実行するときでいう">>>"。実行準備が整った合図
- syntax: プログラムの文法ルール。syntax errorは文法が違うという意味
- high-level language: pythonのような人間にとって読みやすい言語
- low-level language: コンピューターが実行できる言語(=machine language, assembly language)
- parse: プログラムの文法を検証すること
Unit2
変数と関数について。
リストとかの前にまず関数が出てくるんですね。local variableとglobal variableの違いを意識してコードを書く練習をしました
今回も用語で混乱
- parameter: function名の後の()の中の値。functionを実行する時に必要な変数
- argument: parameterに渡される値
Unit3
floor divisionの使い方(例:105//60=1)、IF文、キーボード入力の受付(input())、関数の再帰を学びました
深くネストしたIF文より、シンプルな直列IF文の方が読みやすいので、andやorを使ってIF文の条件を工夫しようという話
Unit4
すこしずつ構築して差分だけテストするIncremental Developmentの重要性がポイントでしたが、私は再帰的な関数呼び出しに苦労しました。
Exerciseは必須ではないですがせっかくならやろうと思ったpalindromeを判定する関数の構築に数時間手こずりました。。でもお陰で再帰関数の書き方が分かった気がする。
Unit5
変数の更新、While文とFor文、スライサー
スライサーはあまり使ったことなかったので勉強になりました。[1:4]なら、1つ目は含むけど4つ目は含まないというのが分かりにくい、、
'banana'[1:4]='ana'
immutable=不変 はここから何度も出てくる英単語でした
Unit6
ようやくListが出てきました。
でもappend()とかremove()といったリストを操作するmethodはさほど問題ではなく、alias, equivalent, identicalがキーワードでした。
- equivalent
- 値が一致していること
- a=bがTRUEであること
- identical
- オブジェクトが同一であること
- a is bがTRUEであること
- alias
- a=[1,2,3] b=aとすると、bはaのaliasになる
- aとbはidenticalになる
- bに変更を加えたらaも更新される
アプリ開発の時にはそこまで意識してなかったけど、ローカル変数はFunction内でしか利用できないはずなのに、Function内でaliasリストを更新すると元のリストも更新されるって変な感じ
1 2 3 4 5 6 7 8 9 10 11 |
def add_element(p_list): p_list.append(4) print(p_list) #Output is 1,2,3,4 print(a_list is p_list) #Output is True, because p_list is an alias of a_list (identical) # Creating a list object a_list = [1, 2, 3] # Calling the function and passing the list as an argument add_element(a_list) print(a_list) #Output is 1,2,3,4 |
Unit7
辞書型とtupleの登場
- dict.items()
- keyとvalueを組み合わせたtupleを返す
- for key,value in dict.items():
- enumerate(list, start=1)
- インデックスとリスト値の組み合わせtupleを返す
- start=でインデックスの開始を0以外にもできる
- for index,value in enumerate(list, start=1):
- zip(list, list)
- 二つのリスト値をペアにしたtupleを作成できる
- list(zip('Anne', 'Elk')) → [('A', 'E'), ('n', 'l'), ('n', 'k')]
Unit8
ファイルの扱い方とtry:except:を学びました
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
def read_file(file_path): try: with open(file_path, 'r') as file: content = file.read() print("File content read successfully:") print(content) except FileNotFoundError: # Handle the case where the file does not exist print(f"Error: The file '{file_path}' was not found.") except Exception as e: # Handle other potential exceptions print(f"An unexpected error occurred: {e}") file_path = 'Unit8_word.txt' read_file(file_path) |
Unit9 Final Exam
Review Quizと似たような問題でした
1問間違えたみたいだけど何をミスったのかは不明、、
結果はA+。Programming Assignmentが毎回10点満点だったのにDiscussion Postのピアレビューが9点に達さないことが多かったのが心配でしたが大丈夫でした。