平凡エンジニアからの出発

一に努力、二に理想、三に積小為大。

【E資格対策】Python 中級 1

( ..)φメモメモ

何のためにE資格取得がんばる?

AIを深く理解していくための基礎力として、E資格を学ぶ。
資格を取った先、仕事で活かした先、研究をした先に、
AIに出来ること、そして、限界が見えてくるはず。

python 中級

for文(2)~リスト(4)

for文

Factorial : 階乗
def factorial(x):
    sum = 1
    for i in range(x, 0, -1):
        if i <= 0:
            break
        else:
            sum = sum * i
    return sum

if文

うるう年
def leap_year(x):
    if x % 400 == 0:
        # i) 400で割り切れる場合は、うるう年
        leap = True
    elif x % 100 == 0:
        # ii) 400で割り切れない、かつ、100で割り切れる場合は、平年
        leap = False
    else:
        if x % 4 == 0:
        # i) ii) とも満たさない、かつ、4で割り切れる場合は、うるう年
            leap = True
        else:
            leap = False

    if leap:
        print(str(x) + "年はうるう年")
    else:
        print(str(x) + "年はうるう年ではない")
不思議なifの判定

if文に0が入ると、Falseの判定になる。
ちなみに、0.0だと、float型で、Falseの判定になる。

num = 0

if num:
    print("num = " + str(num) + ", type = " + str(type(num)) + " True")
else:
    print("num = " + str(num) + ", type = " + str(type(num)) + " False")

# 出力 ⇒ num = 0, type = <class 'int'> False

リスト

リスト内包表記

qiita.com

enumerate関数

簡単にリストを作成できるよ

構文 : [式 for 変数 in イテラブルオブジェクト]

# リスト内包表記
list = [i + 1 for i in range(5)]
# コードで書く
def create_list():
    list = []
    for i in range(5):
        list.append(i+1)

判定を含むの構文 : [式 for 変数 in イテラブルオブジェクト (if文)]

FizzBuzzの短縮(↑のQiitaより)

["fizzbuzz" if i%15==0 else "fizz" if i%3==0 else "buzz"
 if i%5==0 else i for i in range(1,16)]

※注意(Javaが染み込んでいる~

list.len()   # NG
len(list)    # OK

意外と型変換が必要な感じ。
動的型付けだから、わかりづらい印象を受ける。慣れか。

emumerate:列挙する

# 構文
for 変数名1(インデックス),変数名2(値) in enumerate(イテラブルオブジェクト):
    # 処理