「3ステップでしっかり学ぶ Python入門」の感想・備忘録

スポンサーリンク

点数

70点

感想

最初の入門書としてはいいのかもしれないが、内容は薄かった。

pythonで何かを作るには、他の情報が必要になると思う。

配列操作

names = ['鈴木', '山本', '高橋', '小林']
names.append('山田')
names.insert(3, '山田')
names.pop(2) # インデックス指定で削除
names.remove('山田') # 値指定で削除
names3 = names + ['佐藤'] # 連結
print(names3)
print('山田' in names) # 値があるかチェック"

辞書(連想配列)

person = {
  id: 1,
  name: '山田',
  age: 20,
}
person.pop('age') # キー指定で削除
person.clear() # 全てのキーを削除

タプル(読み取り専用配列)

tuple = ('aaa', 'bbb')

セット

  • 順番を持たない、かつ重複した値を許さない配列。
  • ある値が既に存在するかどうかをチェックしたい場合に利用する。
names = {'山田', '田中', '鈴木'} # セットの作成
names2 = set( ['山田', '田中', '鈴木', '山田']) # 配列からセットを作成(重複は削除される)
names.add('山本') # 追加
names.remove('田中') # 削除
print('山田' in names) # True(in演算子によるチェック)
names.clear() # 全削除

mathモジュール

import math
print(math.floor(12.34))

datetimeモジュール

  • モジュールでは、関数だけでなくデータ型(クラス)も定義することができる
  • datetime.date, datetime.time, datetime.datetimeはデータ型である
  • datetime.date(2000, 1, 1)のようにモジュール名.型名(引数)で値を生成する
  • datetime.date.today(), datetime.datetime.now()のようにクラスメソッドで生成することもある
  • datetime.date型同志を演算子で加減算するとdatetime.timedelta型を返す
  • datetime.timedelta(days=xx)でdatetime.timedelta型の値を生成することができる
  • 文字列にする場合はstr()関数で変換する
    print('今日は' + str(datetime.date.today()))
import datetime
today = datetime.date.today()
print(today)
print(today.year)
print(datetime.date(2020, 12, 31))
print(type(datetime.date)) # <class 'type'>
print(type(today)) # <class 'datetime.date'>

delta = today- datetime.date(2020, 12, 31)
print(delta)
print(type(delta)) # <class 'datetime.timedelta'>
print(today + datetime.timedelta(days=30))

theTime = datetime.time(9, 11, 30)
print(theTime) # 09:11:30
print(theTime.minute) # 11

theDateTime = datetime.datetime(2021, 11, 4, 15, 10, 3)
print(theDateTime)
print(theDateTime.year)
print(datetime.datetime.now()) # ミリ秒まで
print(datetime.datetime.now().replace(microsecond = 0)) # ミリ秒削除

ファイル操作

  • withブロックを利用すると、ブロック終了時に自動的に閉じられる
    with open('hoge.txt', 'w', encoding='UTF-8') as file : print(file.read())
  • 末尾の改行コードは.rstrip('\n')で除去できる
  • open()で返されるファイルオブジェクトをループさせて行単位で取得することもできる
    with open('hoge.txt', 'r', encoding='UTF-8') as file :
    for line in file:
    print(line.rstrip('\n'))
file = open('hoge.txt', 'w', encoding='UTF-8')
file.write('[' + str(datetime.datetime.now().replace(microsecond = 0)) + ']\n')
file.close()

with open('hoge.txt', 'r', encoding='UTF-8') as file :
  lines = file.readlines()
  print('先頭行:', lines[0].rstrip('\n'))

クラス

  • クラス名はパスカルケース、ファイル名はスネークケースとする
  • コンストラクタは__init__関数として定義する
  • コンストラクタ、メソッドの最初の引数はselfでなければならない
  • クラスメソッドを定義する場合は、@classmethodデコレータを付与する。第1引数はclsでなければならない。
  • 継承したクラスはclass クラス名(親クラス名)で定義する
  • passは空のブロックであることを表す
class Car:
  def __init__(self, maker, model) :
    self.maker = maker
    self.model = model
  def print_maker(self):
    print(self.maker)

class Bus(Car):
  pass
import my_class
car1 = my_class.Car('トヨタ', 'アクア')
print('メーカー:', car1.maker, ', 車種: ', car1.model)

コメント