目標設定
2020/0719
PyQを使った勉強のアウトプットのために
自分の学習記録を残しておくこと+自分の同じ立場の人にも読んでもらえるようなものを目指します。
原則的に学習に以下を意識します。
・基礎ばかりやらないで、基礎が終わり次第簡単なアプリケーション、ツールの作成に取り掛かる
・わからないところは、ささっと調べて、調べてもわからない場合は先に進む。
・プログラミングはあくまで自分の作りたいものを作る道具でしかないことを意識する。
・目標を明確に設定して期間も意識した学習をする。
小目標
PyQのカリキュラムを終わらせる。
現在:コンテナを学ぼう
大目標
Pythonでアプリケーションを作る。
タプルを使った販売データの出力
タプルとは?
タプルは、リストや辞書型といった複数の要素を管理するデータ型の一種。
・要素を追加・削除・変更できない
・() と , がトレードマーク
・使用メモリがリストに比べて小さい*
・多くの場合でリストよりタプルの方が早く演算できる*
・リストや辞書型と併用できる
・list() と tuple() 関数でデータ型は変更できる
問題:顧客IDが10以下で、販売額が100円以上のデータを出力してください。
コード
"""
sales = ((1, 100), (2, 30), (7, 150), (11, 120), (10, 100))
for sale in sales:
if sale[0] <= 10 and sale[1] >= 100:
print(sale)
"""
出力
"""
(1, 100)
(7, 150)
(10, 100)
"""
集合のメソッド
集合(set)はリストに似たデータ構造ですが、以下の特徴があります。
・リテラルは、{'art', 'box'}のように波括弧を用います。
・イミュータブル(変更不可)なものしか入りません。
・同じものは1つだけ持てます。複数追加しても1つになります。
・順序がありません。イテラブルとして取得すると実行のたびに順番が変わることがあります。
・集合同士の演算があります。
・リストより探索が高速です。
集合のメソッド(追加・更新・削除)
add(item)
itemを追加します。
update(iterable)
イテラブルiterableの要素全てを追加します。
clear()
全ての要素を削除します。
pop()
何れかの要素を削除し返します。
remove(item)
itemを削除します。itemが存在しないとエラー(KeyError)になります。
discard(item)
itemを削除します。itemが存在しなくてもエラーになりません。
"""
items = {'art'}
print("items:", items)
1要素を削除
result = items.pop()
print("items.pop():", result)
print("items:", items)
リストを追加
items.update(["egg", "fog"])
print("items.update(['egg', 'fog'])")
print("items:", items)
全削除
items.clear()
print("items.clear()")
print("items:", items)
追加
items.add("doll")
print("items.add('doll')")
print("items:", items)
削除
items.remove("doll")
print("items.remove('doll')")
print("items:", items)
"""
出力
items: {'art'}
items.pop(): art
items: set()
items.update(['egg', 'fog'])
items: {'fog', 'egg'}
items.clear()
items: set()
items.add('doll')
items: {'doll'}
items.remove('doll')
items: set()