今まではJSでしたが、これからPythonを始めるにあたって「やさしいPython」を読みました。
必要そうなところをサイトで調べながら、記載してます。
リスト(変更可能)
test = [10, 20, 30]
削除
del test = [1]
新しく作成
test = (10, 20, 30)
test2 = list(test)
タプルからリストに変換
メソッド
リスト.append():追加
リスト.insert():位置に要素を挿入
リスト.remove():削除
リスト.extend()イテラブルの要素を追加
リスト.sort():ソート
リスト.reverse():逆順
リスト.copy():コピー
リスト.pop([]):末尾または指定位置の要素を削除
リスト.clear():全て削除
リスト.count():回数を数える
タプル(変更不可)
test = (10, 20, 30)
test2 = 10, 20, 30
上記どちらも同じ
tuple():タプル作成
ディクショナリ(変更可)
test = {"prefecture":"東京","sale":100}
新しく作成
test = dict(キー = 値, キー = 値,)
値があるかないか(in ・ not inで調べる)
data = [10,20,30]
if 1 not in data:
0や空データがあるか調べる
if any(data):
any:0や空の値でないものが1つでもあればTrue
all:0や空の値が1つもなければTrue
メソッド
ディクショナリ.get():キーの値またはデフォルト
ディクショナリ.update():追加更新
ディクショナリ.pop():キーの値を削除
ディクショナリ.pupitem():任意の対を削除
ディクショナリ.clear():全て削除
ディクショナリ.items():項目のビュー
ディクショナリ.keys():キーのビュー
ディクショナリ.values()値のビュー
セット(重複不可)
test = { “東京”, “名古屋” , “大阪”}
※&や|を使える
メソッド
セット.add():追加
セット.remove():削除
セット.discard():要素があれば削除
セット.pop():要素を削除してその要素を返す
セット.clear():全て削除
セット.update():更新
セット.union():共有をとる
セット.difference():差をとる
セット.symmetric_difference():対称差をとる
セット.issubset():部分集合
セット.issuperset()包含
セット.copy():コピー
引数
def a ( *args)
a(10,20,30)
※上記はタプルとして格納
引数を幾つでも渡して呼び出せる
def a ( **args)
a(a=10,b=20,c=30)
※上記はディクショナリとして格納
関数に機能を追加するとき@を使う = デコレーダー
クラス
「データ」と「処理」をまとめる
class Person:
def getName(self):
return self.name
name:データ属性
getName関数:メソッド
コンストラクタ
__init__:インスタンスを作成する時最初に必ず呼び出される
カプセル化
_,__(値を変更されたくない):アクセスを制限したい属性の名前につける
ファイル
開ける→書き込む(読み込む)→閉じる
この流れは全て一緒
オープンモード:“w”は書き込み、"r"は読み込み
その他書いてある記事
テキストファイル読み書き
f = open(“test.txt” , ”w”)
f.write(“こんにちは¥n”)
f.write(“こんばんは¥n”)
f.close()
CSVファイル
import csv
r = csv.reader(f)
w = csv.writer(f)
w.writerow(["東京","名古屋"])
w.writerows([["東京","名古屋"],["大阪","京都"]])
writer()関数を使うとライタを取得でき、writerowやwriterowsを使える
JSONファイル
import json
関数
load():読み込み
dump():書き込み
システム処理
import os
start():ファイル情報
getcwd():現在のディレクトリ
remove():削除
mkdir():ディレクトリ作成
rmdir():ディレクトリ削除
rename():ファイル名変更
listdir():ファイル名リスト
access():アクセス権限を調べる
chmode():アクセス権限を変更
getenv()環境変数の値を取得
import os.path
abspath():絶対パス
dirname():ディレクトリ名
basename():ファイル名
split():分割
splittext():拡張子名部分と分割
commonprefix():パスの先頭から共通部分
exists():存在するか
commonpath():リストから共通する部分
isfile():ファイルであるか
isdir():ディレクトリであるか
getsize():ファイルサイズ
getatime():最終アクセス時刻
getmtime():最終更新時刻
getctime():作成時刻
日時情報
import datetime
データ属性・メソッド
datetime():日時を作成・取得
datetime.now():現在の日時
datetime.today():現在の日付
datetime.fromtimestamp():タイムスタンプ
datetime.strptime():指定したフォーマットの日時文字列
日時.date():同じ日時のdate
日時.time()同じ日時のtime
日時.weekday():曜日
日時.strftime():指定したフォオーマットの日時文字列
日時.year():年
日時.month():月
日時.day():日
日時.hour():時
日時.minute():分
日時.second():秒
日時.microsecond():マイクロ秒
日時.tzinfo():タイムゾーン
timedelta():日時の加減算
例外処理
try:
xxxxx
except "例外クラス名":
"例外あり"
pass "通過して下の処理にいく"
continue "処理をスキップする"
break "強制終了、for文なら外にでる"
else:
"例外なし"
finally:
xxxxx
HTML解析
import urllib.request
urllib.request.urlopen()
From html.parser import HTMLParser
組み込み関数メソッド
リストの値を順番に取り出す
it = iter(data)
next(it)
という指定を繰り返すことで順番に値を取り出せる
組み合わせる
zip( )
city = [ “東京”, “名古屋” , “大阪”]
sale = [80,20,10,70]
for d in zip(city,sale)
print(d)
=>(“東京”, 80)(“名古屋”,20)(“大阪”,10)
分解(アンパック)
for c, s in zip(city, sale)
print():標準出力への出力
input():標準入力への入力
len():長さ
max():最大値
min():最小値
sum():合計値
sorted()ソート
reversed():逆順
iter():イテレータ取得
repr():文字列を取得
next():イテレータの次の要素取得
enumerate():イテラブル列挙
zip():イテラブルの要素を集める
map():イテラブルに関数をを処理した結果
any():イテラブルいずれかの要素がTrueであればTrue
all():イテラブルすべての要素がTrueならTure
open():ファイルを開ける
dir():ローカルな名前取得
int():整数に変換
float():浮動小数点数に変換
str():文字列に変換
range():rangeを作成
文字列メソッド
文字列.upper():大文字に変換
文字列.lower():小文字に変換
文字列.swapcase():大文字を小文字に小文字を大文字に変換
文字列.capitalize():先頭を大文字、残りを小文字に変換
文字列.title():タイトル文字
文字列.center():指定幅で中央揃え
文字列.ljust():指定幅で左寄せ
文字列.rjust()指定幅で右寄せ
文字列.strip()空白文字、指定文字を除去
文字列.lstrip():先頭の空白文字、指定文字を除去
文字列.rstrip():末尾の空白文字、指定文字を除去
文字列.split():文字列を分解した各単語のリスト
文字列.splitlines():文字列を行で分解した各行のリスト
文字列.join():イテレータで返される文字列を結合した文字列
文字列.format():文字列を指定書式
文字列.find():部分文字列を検索
文字列.rfind():部分文字列を逆順に検索
文字列.index():findメソッドと同じ処理で例外を送出
文字列.replace():置換した文字列
文字列.count():部分文字列が何回出現するか
文字列.startswith():先頭が検索文字列で始まればTrue
文字列.endswith():末尾が検索文字列で始まればTrue
最後に
一番クラスの理解が浅いので、これから学習や実装をして記事を作成していきます!