TIL 11 | For & While Loops


1.For構文

For Loops(for 구문)は、list、tuple、dictionaryなど、ユーザが一度に必要な論理を実行するのに役立つ.

1)For構文

for element in list:
	do_something_with_element
for文は、リスト内の要素の数と同じ文に属するコードを実行し、反復と呼ばれます.たとえば、リストに5つの要素がある場合は、5反復と呼ばれます.

  • Break
    文法で最後まで行いたくない場合、途中で止めたい場合はbreakを使用します.break文が実行されると、次の反復に進むことなくfor文が終了します.


  • continuebreakと同様にfor構文を完全に終了したくありませんが、次の反復を続行する場合はcontinueを使用します.

  • 2)For構文の重複

    numbers1 = [1, 2, 3, 4, 5]
    numbers2 = [10, 20, 30, 40, 50]
    
    for num1 in numbers1:
    	for num2 in numbers2:
        	print(f"{num1}*{num2} == {num1 * num2}")

    3)for構文の例

  • 例1)所与のリストに一度だけ値を表示する要素
  • を出力する
    my_list = [1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]
    dic = {}
    
    for element in my_list:
      if element not in dic:
        dic[element] = 1
      elif element in dic:
        dic[element] += 1
    for i in dic:
       if dic[i] == 1:
        print(i)		# 결과: 4, 5
  • 例2)与えられた単語のすべての文字を含む配列を返す
  • str_list = []
    mission_str = "wecode"
     
    for i in mission_str:	# 문자열에서도 for 구문 이용해 한글자씩 추출 가능
    	str_list.append(i)
    return str_list

    2. Range


    コードは、繰り返し文で複数回実行できます.rangeは、開始条件、終了条件、およびステップを書き込むことができます(オプション).
    for in range(start_value, end_value, step)
  • Range(範囲関数)リスト
  • に0と4を入れてみます.
    my_list = []
    for i in range(0,5):
    	my_list.append(i)	# 결과: [0, 1, 2, 3, 4]
    |使用
  • Range(範囲関数)リストに1~9個の奇数
  • のみ表示
    my_list = []
    for i in range(1,10,2)	# range(start_value, end_value, step)
    	my_list.append(i)	# 결과: [1,3,5,7,9]
  • Range(範囲関数)完了リスト要素の合計戻り
  • my_list = [2,3,4,5,6]
    
    sum = 0
    for i in my_list:
    	sum +=	i
    return sum    

    3. While Loops


    特定の条件文が真の日数でコードブロックを繰り返し実行する構文
    while <조건문>	# while 구문
          수행할 문장
  • Break & Continue
    文法と同様に、while文にもbreakとcontinueがあります.
  • number = 0
    
    while number <= 10:		# number가 10 이하 = True
    	if number == 9:		# 조건문 1) number가 9면 break
        	break
        elif number <= 5:		# 조건문 2) number가 5 이하인 경우 number에서 1씩 계속 더함
        	number += 1
            continue		# 결과: 1, 2, 3, 4, 5, 6
        else:			# 조건문 3) 조건문 1,2에 해당하지 않는 경우 해당 number 출력    	
        	print(number)		# 결과: 6,7,8
            number += 1
  • While - Else
    Pythonのwhile文はif文のelseに似たelse文を追加できます.
    whileの条件文がfalseの場合、構文のelse文もif文のように実行されます.
  • number = 0
    
    while number <= 10:
        print(number)
        number += 1
    else:
        print(f"while 문이 끝나고 난 후 의 number : {number}")
    결과:  0
           1
           2
           3
           4
           5
           6
           7
           8
           9
           10
    while 문이 끝나고 난 후 의 number : 11

  • 整数(整数)パラメータ値を持つ関数を実装します.関数は、パラメータ値が1以外の最小数の整数を返さなければなりません.
  • def find_smallest_integer_divisor(numb):
    	
        a = 2
        while a > 1:
        	if numb % a != 0:
            	a += 1
    	else:
            	return a
    

    4. Looping Dictionary


    listと同様に、dictionaryはfor 구문を使用して重複する論理を実行することもできる.
    dictionaryはlistとは異なり、各要素はkeyおよびvalueからなるため、dictionaryを使用するfor文では、各要素のkeyのみが返される.

  • 非キーvalue値ループを使用します.value値を使用してfor構文を実行values 함수
  • keyvalueが同時にループする方法
    |使用keyおよびvalue同時実行for構文items 함수Dictionaryのitems関数はkeyとvalueをtupleに返します.

  • dictionaryに戻って、inputのリスト内の各要素(要素)がリストに何回表示されるかを理解します
  • def get_occurrence_count(my_list):
    
        dic = {}
        for i in my_list:
        	if i not in dic:
            	dic[i] = 1
            elif i in dic:
            	dic[i] += 1
            return dic

    5. Complex Dictionary


    1) List of DIctionaries


    複数のdictionaryをlistにマージして情報を表現する方法により、for構文は各dictionaryを読みやすくし、必要な論理を実行することができる.
    bts_members = [
    {
        "실명" : "김남준",
        "가명" : "RM",
        "생년월일" : "1994년 9월 12일"
    },
    {
        "실명" : "김석진",
        "가명" : "진",
        "생년월일" : "1992년 12월 4일"
    }
    ]

    2)ネストされたパーティションが重なる


    Dictionaryのdictionaryネストでは、必要なデータをより効率的に表現できます.
    bts_members = {
         "RM" : {
        	"실명" : "김남준",
        	"생년월일" : "1994년 9월 12일"
          },
         "진" : {
        	"실명" : "김석진",
        	"생년월일" : "1992년 12월 4일"
          }
    }
    print(bts_members["RM"]["생년월일"])