学習記録:Python


9月4日 Python

Python2周目の学習
関数の作成、メソッドの処理、インスタンスの作成などは数を経てスムーズに出来るようになりましたが、inputで入力された値が文字列なので、それをint型に変換したり、printするときにstring型にしたり…そういった部分を見落とすことが多いので、注意が必要だなと感じました。

で、Progate上でPythonを2周し、基礎は掴めたように感じたので、今後PythonはAidemyで学習をしていこうと思います。

条件分岐

x =9 * 10

# ifなどの条件式の後ろには「:」をつける
# 条件式が適用されている範囲はインデントによって判定される
if x >= 100 :
     print('xは100以上です') #条件式の範囲内
elif x >=50 :
   print('xは50以上です') 

# 条件式として機能しないパターン
if x == 70 :
print('xは70ではありません') #インデントが揃っており、条件式の範囲外

入力した数字を受け取る

# 変数 = input('コンソールに表示したい文字列')で数字を受け取る
# ※inputで受け取った値は文字列型になっているので、数値にする場合はintで変換
input_count = int(input('購入するりんごの個数を入力してください:'))

pythonにおけるリスト(配列)

# リスト化: リスト名 = [ , , , … ]
fruits = ['apple', 'banana', 'orange']
# リストの末尾に要素を追加する: リスト名.append()
fruits.append('grape')

# 配列の要素を繰り返して全て取り出す: for 変数名 in リスト名 :
for fruit in fruits :
    print(fruit)

pythonにおける辞書

# キー名と値を用いて辞書化する: 辞書名 = {'キー名':'値','キー名':'値',…}
fruits = {'apple':'りんご','banana':'バナナ'}
# 辞書の特定のキーの値を出力する 辞書名['キー名']
print(fruits['banana'])
# 値を更新する: 辞書名['キー名'] = 値
fruits['banana'] = 300
#辞書に新しい要素を追加する: 辞書名['新しいキー名'] = 値
fruits['grape'] = 500
# 辞書の全要素を繰り返し処理をする: for 変数名 in 辞書名 :
# 変数名にキー名が順番に挿入される。値を呼び出すにはfruits[変数名] []内に''は用いない。
for fruit in fruits :
    print(fruit+'は'+fruits[fruit]+'という意味です')

関数の定義

# 関数は「def 関数名():」のように定義する。コロンを忘れない。
# 関数に引数を渡す場合は、「def 関数名(引数):」とする
def print_hand() :
    print('グーを出しました')
# 関数名()のように() をつけて呼び出す。
print_hand() 

**ファイルの分割とモジュールの呼び出し

# モジュールを読み込んで使いたいファイルに「import モジュール名」と書くことで読み込む。
# ※モジュール名はファイル名から拡張子(.py)を取り除いたもの。
import utils
#「モジュール名.関数名()」と書くことで、モジュール内の関数を実行することができます。
utils.print_hand(player_hand, player_name)
# 標準ライブラリと呼ばれる関数を格納したモジュールが用意されている。
import math , import random , import datetime , etc

pythonにおけるクラスとインスタンス

# クラスは「class クラス名:」とすることで定義出来る
 class MenuItem:
#  クラス名()でインスタンスを生成する事が出来る
# 「変数名 = クラス名()」とすることで、生成したインスタンスを変数に代入することが出来る
 menu_item1 = MenuItem()
# クラスの中で定義した関数のことをメソッドと呼ぶ。
# メソッドの定義の方法は通常の関数と同様だが、第1引数にselfを追加する必要がある。
# クラスの中で定義したメソッドは、「インスタンス.メソッド名()」とすることで、
  そのメソッドを呼び出すことが出来る
class MenuItem:
    def info(self) :
        print('メニューの名前と値段が表示されます')
# __init__メソッドは、「クラス名()」でインスタンスを生成した直後に自動で呼び出すことができる
# インスタンスを生成している「クラス名()」に対して引数を渡すことで、__init__メソッドにその値を渡すことができる
class MenuItem:
    def __init__(self,name,price):
        self.name = name
        self.price = price
    def info(self):
        return self.name + ': ¥' + str(self.price)
menu_item1 = MenuItem('サンドイッチ',500)
print(menu_item1.info())

モジュールからクラスを直接呼出す

# from モジュール名 import クラス名とすることで、特定のクラスを直接呼び出すことが出来る

継承

#「class 新しいクラス名(元となるクラス名):」とすることで他のクラスを継承することが出来る
class Food(MenuItem):
# super().メソッド名()」とすることで、親クラス内に定義されたインスタンスメソッドを
# そのまま利用することが出来る。末尾に:は不要。