for wen range,重畳for,while

22195 ワード

range


クエリー範囲を返す
Python内蔵関数range()は、for文で반복범위を数字で指定する場合によく使用されます.
range(start, stop, step)
開始=開始範囲
stop=範囲の終点
Step=インクリメンタルサイズ
Stepは正の整数と負の整数しか使用できません.

range()関数によって作成されたlist出力

 list(range(0,10,1))
 #0부터 9까지 1증감
[0,1,2,3,4,5,6,7,8,9]
for a in range(0,6): #0부터 5까지 1증감
	print(a)
0
1
2
3
4
5
Stepは基本1なので省略できます.
for a in range(0,6,2): #0부터 5까지 2증감
	print(a)
0
2
4

違うけど同じrange

print(list(range(0,10,1)))
print(list(range(0,10)))
print(list(range(10)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

複数範囲の例

print(list(range(0,20,5))) # 0~19 , 5증가
print(list(range(-10,0,2))) # -10 ~ -1 2증가
print(list(range(3,-10,-3))) # 3 ~ -10 ,-3감소
print(list(range(0,-5,1))) # 0~ -5 까지 1증가
[0,5,10,15].
[-10,-8,-6,-4,-2].
[3,0,-3,-6,-9].
[]

オーバーラップ


ステートメント構造の重複
for <반복 변수> in <반복 범위> :
	for <반복 변수2> in <반복 범위2> :
    		<코드블록>
実行順序
反復変数の実行->コードブロック->
反復変数2のすべての反復を完了する->コードブロック->再反復変数
値がなくなるまで繰り返す

x_list = ['x1','x2']
y_list = ['y1','y2']

print('x y')
for x in x_list :
	for y in y_list :
    	print(x,y)
x . . y
x1 y1
x1 y2
x2 y1
x2 y2

複数のリストの処理


names = ['James','Robert','Lisa','Mary']
scores = [95,96,97,94]
2つのリストがあるときは、名前で試験の点数を印刷します.
names = ['James','Robert','Lisa','Mary']
scores = [95,96,97,94]
	for k in range(len(names)):
   		print(names[k],scores[k])
James 95
Robert 96
Lisa 97
Mary 94

条件

i = 0
sum = 0

print('i sum')
while ( sum < 20 ): #조건검사   sum이 20보다 작으면 반복하라
	i = i + 1 # i를 1씩 증가
	sum = sum + i # 이전의 sum과 현재 i를 더해서 갱신
	print(i,sum) # i와sum을 출력
i sum
1 1
2 3
3 6
4 10
5 15
6 21
およびi値
0 1 1 . . . . . . .0(sum=0)->i+1->sum値にiを加算
1 1
1 2 3
3 3 6
6 4 10
10 5 15
15 6 21

無限反復while

while True :
	print('무한 반복이야~')
止まらないなら、楽しんでください.😉

繰り返し文制御割り込み&continue

break:複文(for mun,while mun)でbreakに遭遇すると複文から離脱する.

breakを使用してwhileゲートを終了

k=0

while True :
	k = k + 1  # k 1씩증가
   	if (k > 3) : # k가 3보다 크다면
		break	 # break로 while문 탈출하여
        
	print(k)  # k 출력
1
2
3

breakを使用してfor文を終了する

k = 0

for k in range(10) : # k를 0~9 까지 반복한다
	if(k > 2):   # 만약 k가 2보다 크다면
   		break # break로 for문 탈출하여
    	print(k) 	# 출력
0
1
2continue:複文でcontinueに遭遇し、複文の最初のループは次のループを行う.

for文の使用を続行

for k in range(5): # k를 0~4까지 반복한다.
	if(k==2):  # 만약 k가 2와 같다면 (k가 2라면)
		continue # continue로 반복문의 처음(시작점)으로 돌아간다.
	print(k)  #출력
0
1
3
4
反復中にkが2である場合、次のコードprint(k)は遭遇せず、反復文の開始点に戻る.

while文でbreakとcontinueを同時に使用する


k=0
while True:   
	k= k+1 	# k에 1을 더한다.
	if(k == 2): #k가 2와 같다면
    		print('continue next') #출력
     		continue # 반복문의 처음으로 돌아간다.
	if(k > 4): # k가 4보다 크다면
    		break  # 반복문 탈출
	print(k) #출력
1
continue next
3
4

1行1行


Pythonには、リスト、セット、ディックシリーズで実行できる1行1行の文があります.리스트 컴프리헨션(List comprehension) ,세트 컴프리헨션(Set comprehension) ,딕셔너리 컴프리헨션(Dictionary comprehension) 컴프리헨션=内包
1行のコードを書くことができて便利です.

リスト計算の基本構造


[<繰返し実行文>for<繰返し変数>in<繰返し範囲>]

数値1~5のリストで、数値を2乗で出力します。


まず基本的なfor文を利用する.
numbers = [1,2,3,4,5]
square = []

for i in numbers:
	square.append(i**2)
    
    	print(square)
[1,4,9,16,25]

リストを使用して計算します。

numbers=[1,2,3,4,5]
square=[i**2 for i in numbers]
print(square)
[1,4,9,16,25]

インベントリ計算、条件文を含む


[<繰返し実行文>for<繰返し変数>in<繰返し範囲>if<条件文>]
numbers = [1,2,3,4,5]
square = []

# 컴프리헨션을 사용하지 않은 for문

for i in numbers:
	if i >=3:  # i 가 3이상 이라면
    		square.append(i**2) # 거듭제곱 하여 추가
print(square)


#리스트 컴프리헨션

square = [i**2 for i in numbers if i >=3]  #i가 3이상일때 거듭제곱한다.
print(square)
[9,14,25]