LoginSignup
0
0

Python繰り返し

Posted at

繰り返し

Pythonの繰り返し文の文法メモです。

for

for 変数 in イテラブル:
    処理

通常例題

mylist = [0, 1, 2]
for value in mylist:
    print(value)

繰り返しの最後に実行する
基本的にfor文の後に処理を書けば同じことができるが、breakが実行された場合は、elseは実行されない

for 変数 in イテラブル:
    処理
else:
    処理
    
for value in range(6):
	print(value)
	
0
1
2
3
4
5

範囲指定
0始まりのため、startを1にすると1,2までしか出力されない→最後の要素は最大の-1となる
rangeに第3引数を与えるとstepとなり、valueがendを超えるまでstartがstepづつ増えていく

for value in range(start, end):
	処理

for value in range(0, 3):
	print(value)
	
0
1
2

for value in range(start, end, step):
	処理

for value in range(1, 5, 2):
	print(value)
# 1が5を過ぎるまで2づつ増えて
# 1, 1+2=3となる
1
3

for i in range(2,9,3):
  print(i)
# 2が3づつ増えて2, 2+3=5, 5*3で8となる
2
5
8

中断
・breakでforを抜ける
・continueでスキップ

文字列

str="abcd"
for i in str:
  print(i)
  
a
b
c
d

添え字も返す

for key, value in enumerate([1,2,4]):
  print(key,value)
  
0 1
1 2
2 4

dictの繰り返し

dict = {1:"a", 2:"c", 3:"d", 4:"b"}
for key, value in dict.items():
  print(key, value)
  
1 a
2 c
3 d
4 b

while

while 条件:
	処置

通常例文

count = 0
while count < 5:
	count += 1
	print(count)
	
1
2
3
4
5

break, continue, elseについてはforと同じ

リスト内包記法

リスト内で簡潔に定義できる

list = [value for value in リテラブル]

# for文で書くと
list = []
for value in リテラブル
	list.append(value)

通常例文

list = [value for value in [1,2,3,4]]
print(list)

[1, 2, 3, 4]

条件
if文の条件がTrueの場合のみリストに追加する

[value for value in イテラブル if 条件]

list = [value for value in range(10) if value % 2 == 0]
print(list)

[0, 2, 4, 6, 8]

複数条件
elseが入るとif文を書く位置が変わるので注意

[value if 条件 else 条件 for value in イテラブル]

list = [value if value % 2 == 0 else 0 for value in range(10)]
print(list)

# 条件がFalseのものは0が入るようになった
[0, 0, 2, 0, 4, 0, 6, 0, 8, 0]
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0