Pythonノート 基礎

Pyhonデータサイエンス学習用のメモです。基礎をまとめました。シンプルにjupyter notebookでのコマンドと実行結果を記載してます。

基本操作

文字列

#文字列
sample_char = "Hello world!"
print(sample_char)

#文字列の抜き出し
print(sample_char[0])
print(sample_char[6:11])
Hello world!
H
world

変数

# 変数に0を代入
sample_int = 0
print(sample_int)

# 変数に10を足す
sample_int = sample_int + 10
print(sample_int)
0
10
変数名
予約語や組み込み関数を使わない。確認コマンドは以下の通り。
# 予約語
__import__('keyword').kwlist

# 組み込み関数
dir(__builtins__)

データ型

リスト

# リスト
sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("sample_list:", sample_list)

# 変数のタイプ
print("変数のタイプ:", type(sample_list))

# 1つの要素を指定(0から始まり)
print("5番目の数:", sample_list[4])

# 要素の数
print("要素数:", len(sample_list))

# リスト自体を2倍
sample_list1 = sample_list * 2
print("sample_list1:", sample_list1)

# リストの数値を2倍(内包表記)
sample_list2 = [i * 2 for i in sample_list]
print("sample_list2:", sample_list2)

# 奇数だけ2倍して抽出
sample_list3 = [i * 2 for i in sample_list if i %2 ==1]
print("sample_list3:", sample_list3)
sample_list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
変数のタイプ: <class 'list'>
5番目の数: 5
要素数: 10
sample_list1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sample_list2: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
sample_list3: [2, 6, 10, 14, 18]

辞書型

# 辞書型
sample_dic = {'NISA':10000, 'iDeCo':20000, 'WealthNavi':5000, 'THEO':5000, 'SocialLending':30000}
print(sample_dic['NISA'] + sample_dic['iDeCo'])

# 全要素表示(key, value)
for key, value in sample_dic.items():
    print(key, value)
30000 
NISA 10000 
iDeCo 20000 
WealthNavi 5000 
THEO 5000 
SocialLending 30000

制御文

if文

sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sample_int = 5.5

# リストの中に、sample_intの数字が入っているか判定
if sample_int in sample_list:
    print(" %f は入っています。" %(sample_int))
else:
    print(" %f は入っていません。" %(sample_int))
5.500000 は入っていません。
%演算子
変換 意味
'd' 符号付き 10 進整数。
'i' 符号付き 10 進整数。
'o' 符号付き 8 進数。
'u' 旧式の型 — 'd' と同じです。
'x' 符号付き 16 進数 (小文字)。
'X' 符号付き 16 進数 (大文字)。
'e' 指数表記の浮動小数点数 (小文字)。
'E' 指数表記の浮動小数点数 (大文字)。
'f' 10 進浮動小数点数。
'F' 10 進浮動小数点数。
'g' 浮動小数点数。指数部が -4 以上または精度以下の場合には小文字指数表記、それ以外の場合には10進表記。
'G' 浮動小数点数。指数部が -4 以上または精度以下の場合には大文字指数表記、それ以外の場合には10進表記。
'c' 文字一文字 (整数または一文字からなる文字列を受理します)。
'r' 文字列 (Python オブジェクトを repr() で変換します)。
's' 文字列 (Python オブジェクトを str() で変換します)。
'a' 文字列 (Python オブジェクトを ascii() で変換します)。
'%' 引数を変換せず、返される文字列中では文字 '%' になります。

for文

# 初期値の設定
total_num = 0

# for 文
for num in range(1, 11):
    print("num:", num)
    total_num = total_num + num

# 最後に合計を表示
print("total_num:", total_num)
num: 1
num: 2
num: 3
num: 4
num: 5
num: 6
num: 7
num: 8
num: 9
num: 10
total_num: 55

while文

# 初期値の設定
total_num = 0
num = 1

# whlie 文
while num <= 10:
    print("num:", num)
    total_num = total_num + num
    num = num + 1
    
# 最後に合計を表示
print("total_num:", total_num)
num: 1
num: 2
num: 3
num: 4
num: 5
num: 6
num: 7
num: 8
num: 9
num: 10
total_num: 55

関数

関数定義

# 関数定義 (フィボナッチ数列1, 1, 2, 3, 5, 8,...)
def calc_fib(n):
    if n == 1 or n ==2:
        return 1
    else:
        return calc_fib(n-1) + calc_fib(n-2)
    
# 関数呼び出し
print("フィボナッチ数:", calc_fib(6))
フィボナッチ数: 8

無名関数

# 無名関数定義
function = lambda a, b: a * b

# 無名関数呼び出し
function(2, 10)
20

range

# range(N)とすると0からN-1までの整数
for i in range(11):
    print(i)

print("\n")

# range(1, 11, 2)は1から開始して2つ飛ばしで、11の手前まで
for i in range(1, 11,2):
    print(i)
0
1
2
3
4
5
6
7
8
9
10


1
3
5
7
9

zip

for one, two in zip([1, 2, 3] ,[11, 12, 13]):
    print("", one, "&", two)
1 & 11
2 & 12
3 & 13

クラスとインスタンス

# クラスと関数の定義
class SampleClass:
    def print_me(self):
        print(self.x, self.y)

# インスタンスの作成、生成
p1 = SampleClass()

# 属性の値を代入
p1.x = "Hello"
p1.y = "World"

# メソッドの呼び出し
p1.print_me()
Hello World