🐍
サラッとPython入門 ~条件分岐から関数まで~
条件分岐
値比較
name = "kite"
if name == "kite":
print("Hi {}".format(name))
elif name == "nancy" or name == "michel":
print("Hello {}".format(name))
else:
print("Oops, sorry what was your name again")
Hi kite
数値比較
BIRTH_AGE = 0
ADULT_AGE = 20
age = 19
if BIRTH_AGE <= age < ADULT_AGE:
print("You are a minor")
You are a minor
その他
指定した値が含まれているかの確認にはinを使います。
friends = {"kite", "michel", "nancy"}
purpose_name = "kite"
if purpose_name in friends:
print("You are friends")
You are friends
繰り返し
for
- インデックス指定によるfor文
friends = ['kite', 'taylor']
# len()によりfriendsの長さを取得し、取得した長さに対しrange()を使う
# range()では0からfriends長さ-1までの数値を生成する
for i in range(len(friends)):
print("Hi {}".format(friends[i]))
Hi kite
Hi taylor
- 拡張for文
friends = ['kite', 'taylor']
for friend in friends:
print("Hi {}".format(friend))
Hi kite
Hi taylor
- enumerateによるfor文
friends = ['kite', 'taylor']
# インデックスと値をセットでforを回す
for idx, friend in enumerate(friends):
print("{}. {}".format(idx, friend))
0. kite
1. taylor
- Dictのfor文
person_info = {"name": "kite", "age": 15, "height": 175}
for key, value in person_info.items():
print(key, value)
name kite
age 15
height 175
- zipによるfor文
name_data = ["kite", "satoru", "taylor"]
age_data = [15, 18, 20]
height_data = [175, 180, 173]
# 複数のリストをまとめて回す際などに使う
for name, age, height in zip(name_data, age_data, height_data):
print("--------------")
print("name : {}".format(name))
print("age : {}".format(age))
print("height : {}".format(height))
--------------
name : kite
age : 15
height : 175
--------------
name : satorusyouya
age : 18
height : 180
--------------
name : taylor
age : 20
height : 173
while
while True:
remark = input("Come clean!! -> ")
if remark == "I did":
print("Arrest you!!")
break
print("Do not tell a lie!!")
Come clean!! -> I did not
Do not tell a lie!!
Come clean!! -> I did not..
Do not tell a lie!!
Come clean!! -> Probably not...
Do not tell a lie!!
Come clean!! -> I did
Arrest you!!
内包表記
list内包表記
# 1~100の数から偶数だけを抽出したリストを生成したい場合
even_numbers = [x for x in range(101) if x % 2 == 0]
print(even_numbers)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76,
78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]
dict内包表記
# 名前のリストにIDを付与してdictに変えたい場合
names = ['kite', 'satoru', 'taylor']
name_holder = {idx:name for idx, name in enumerate(names)}
print(name_holder)
{0: 'kite', 1: 'satoru', 2: 'taylor'}
関数
my_friends = ['michel', 'kite', 'satoru', 'taylor']
# name="kite"などと記述すれば、引数指定が無い場合のデフォルト引数の設定も可能となります
def is_friend(name):
return name in friends
print(is_friend('kite'))
print(is_friend('nancy'))
True
False
ラムダ式
lambda
# 指定された数値が偶数か確認する
# lambda 引数: 引数に対してする処理
func = lambda x: x % 2 == 0
print(func(1))
print(func(10))
False
True
map
# friendsに対して、lambdaで一つづつ回して小文字変換を適用させる
# map(処理, 処理を適用させたい変数)
friends = ['SATORU', 'KITE', 'NANCY']
friends = list(map(lambda name: name.lower(), friends))
print(friends)
['satoru', 'kite', 'nancy']
filter
# 1~100の間で偶数のみを抽出
# filter(条件処理, 処理を適用させたい変数)
even_numbers = list(filter(lambda x: x % 2 == 0, range(101)))
print(even_numbers)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76,
78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]
Discussion