eljefeblog 

Any sufficiently advanced technology is indistinguishable from magic

programming python-basic-lectures

【基本を学ぶ2:超初学者向け】Pythonプログラミング入門【構文理解編】

Pythonプログラミング入門【構文理解編】




この記事は以下のような疑問に対しての答えを提供できるように執筆しています。

悩むペン銀

Pythonの基本構文を習得したい。特にPythonで格納できるデータ型の種類について学びたい。





Pythonの基本構文に関する学びを深め
実際に手を動かしてPythonプログラマとしてレベルアップする
道のりを一緒に歩いていきましょう。








Pythonにおける構文理解


文字列操作(おさらい)




オペーレータでの操作



前回の記事
で数字を操作できることを学んだ様に
文字列も操作することができます。
ターミナル
を開き、Pythonを起動。
以下のコードを入力して出力結果を確認して見ましょう。
(>>>はPythonとの対話環境を表しています。入力する必要はありません。)

# 文字列同士は+(プラス)のオペレータで連結することが可能です。
>>> "Hello" + " "+ "World!"
'Hello World!'
>>> "my name is" + "seimei"
'my name is seimei'



関数での操作



文字列の連結が確認できたら
いくつかの関数を文字列操作に適用して見ましょう。

# len()は入力に文字列を受け取り、その文字列長を返します。
>>> my_name="seimei"
>>>len(my_name) 
6



データ型関数の操作



前回はデータ型関数について少しだけ学びました。
ここではもう少し学びの知見を貯めていきましょう。
コピペせず、自分の手を動かして出力を確認してくださいね。

“自分の手を実際に動かすこと”がPython習得の最短ルートです。

## (文字列).capitalize()は入力に文字列を受け取り
## 先頭の小文字を大文字に変換して返します
>>> low_case_string =  "konnichiwa"
>>> low_case_string.capitalize()
'Konnnichiwa'
# (文字列).format()は文字列の中に文字列を組み込み返します
>>> name = "nihon tarou"
>>> say_hello= "My name is {}".format(name)
>>> say_hello
'My name is nihon tarou'
## 文字列.strip()は文字列の中より空白を取り除き返します 
>>> are_you_happy = "    yes    "
>>> answer = are_you_happy.strip()
>>> answer
'yes'




リスト操作



オペレータで操作する



リストも文字列同様、結合することができます。

>>> fruits = ["apples", "grapes", "oranges"]
>>> veggies = ["corn", "kale", "mushrooms"]
>>> grocery_list = fruits + veggies
>>> grocery_list
['apples', 'grapes', 'oranges', 'corn', 'kale', 'mushrooms']



関数で操作する



一般的にリストは、「1つ1つのデータが要素である」と言う点において
文字列と同等であると考えても良いです。
つまり何を言いたいのかと言うと
文字列操作に使用して来た関数およびデータ型関数は
リストにも適用可能
と言うことです。

実際に確認していきましょう。

# len()はリストを受け取り、そのリスト長を返します
>>> num_list =  [1, 2, 3, 100]
>>> len(num_list)
4
# リストのインデックスを指定することで
# スライスすることができます
>>> name = ["S", "e", "i", "m", "e", "i"]
>>> name[2]
'i'
>>> name[3]
'm'
>>> name[0]
'S'
>>> name[0:2]
['S', 'e']




データ型関数で操作する



もう一度Pythonの公式ドキュメントをみて
データ型関数を確認して見ましょう。

# リスト.append()はリストの最終列に要素を追加します 
# 入力はどんなデータ型でも対応しています
>>> animals = ["dog", "cat", "pig"]
>>> animals.append("bird")
>>> animals
['dog', 'cat', 'pig', 'bird']

# リスト.sort()は格納された要素を順番に並べ替えます
# 以下の例であれば文字列の先頭をアルファベット順に並べ替えています。
>>> animals.sort()
>>> animals
['bird', 'cat', 'dog', 'pig']
# リスト.pop() リストから指定されたインデックスないの要素を抜き出します
>>> num_list = [1, 2, 3, 100]
>>> num_list.pop(2)
3
>>> num_list
[1, 2, 100]








タプル操作


オペレータで操作する


タプルはリストと同様に要素を追加することができます。
ただ追加した後は要素を変更することができません。

>>> tuple_1 = (1, 2)
>>> tuple_2 = (3, 4)
>>> tuple_3 = tuple_1 + tuple_2
>>> tuple_4
(1, 2, 3, 4)





関数で操作する


# list()はタプルをリスト型に変換して返します
>>> tuple_1 = (1, 2)
>>> list(tuple_1)
[1, 2]





データ型関数で操作する



タプルは不変であるため多くのリストを操作するデータ型関数は
タプルを操作することができません

>>> tuple_1 = (1, 2)
>>> tuple_1.append(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> tuple_1.pop(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'pop'
>>> tuple_1.sort()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'sort'
>>> tuple_1.reverse()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'reverse'




コメントアウト



冒頭より何度も見かけていると思いますがPythonでは#(シャープ)を入力することでコメントを記述
することができます。つまり、これはシャープの後に書かれた文字はプログラムの中で無視されることを意味しています。

後々コードを見直した時、どの様な内容だったのか
自他共に確認できる様、分かりやすいコメントアウトを残す癖をつけましょう。
以下に例を示します。

# このリストnameは〇〇高校の学生の内、
# 優秀な成績の者の名前を格納している
student_name = ["上田智樹", "山下智子", "木下若菜"]


多くの場合、ここまで細かく書く必要はありませんが、
重要な機能を持つ関数や、忘れると困る値など
後日確認した際に思い出せる内容のコメントを残すことが大切です。







まとめ



お疲れ様でした。
今回のレッスンは以上です。


少しずつPythonプログラマとしての実力を向上させていきましょう。
質問等あれば気軽にコメントで教えてくださいね。
可能な限り回答します。


今回は以上です。
ではでは





続編はこちら↓↓↓





人気記事【初学者必見】効率的なプログラミング勉強方法を紹介します

人気記事 CS学位取得者がガチでプログラミングスクールを調査してみた件【おすすめのスクール】









このエントリーをはてなブックマークに追加
data-ad-format="rectangle" data-ad-format="rectangle"

返信する

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

某国立大学大学院(理系)に所属しています。 最近の趣味は人工知能関連の論文を読む事で 研究ではComputer Vision周りを中心に活動しており、 サイドワークとしてデータ分析の業務に関わっています。 本ブログはこれまで筆者が学んできた様々な知識の中から 有益だと思えた情報のみをまとめたものです。 内容は個人の見解であり、所属する機関と関係するものではありません。 Research: is related to Computer Vision Hobby: is to study Artificial Intelligence / Machine Learning.