(TIL8) Python 4

SooHyung Kim·2020년 3월 31일
0

Today I learned

목록 보기
8/25

For Loops

  • 기본 구문

    my_list = [1, 2, 3, 4, 5]
    
    for element in my_list:
        do_something_with_element
    • 위의 예시는 list의 요소를 한 번에 한 개씩 가지고 와서 for 구문 안에 위치한 코드를 실행하며 list 외에도 tuple, set 등 다른 자료 구조도 사용이 가능함
    • 즉 반복 가능한 요소의 수 만큼 반복하여 코드를 실행함
  • Break

    • for 구문에서 break 가 실행되면 다음으로 넘어가지 않고 반복문에서 빠져 나오게 됨
    my_list = [1, 2, 3, 4, 5]
    
    for element in my_list:
        if element == 3:
            print('3입니다.')
            break
        else:
            print('3이 아닙니다.')
            
     # 1, 2 에서는 3이 아닙니다, 3이 들어가서야 3입니다가 출력되고 break를 만나 for문을 빠져나옴
  • continue

    • break와 달리 다음 iteration으로 넘어가고 싶을 때는 continue를 사용
    my_list = [1, 2, 3, 4, 5]
    
    for element in my_list:
        if element == 3:
            print('3입니다.')
            continue
        print('계속 출력하겠습니다.')

While Loops

  • 자료구조 기반 외의 코드블록을 반복 실행해야 할 경우에 사용하며, iteration이 정해지지 않았을 경우에 사용
   number = 0			# 초기값
   
   while number <= 10:		# 반복 조건문
       print(number)		# 반복 문장
       number += 1		# 증가 값
   
  • while문에도 break와 continue가 존재
   number = 0
   while number <= 10:
      if number == 9:
          break
      elif number <= 5:
          number += 1
          continue
       else:
          print(number)
          number += 1
  • while 문에는 else 문이 추가될 수 있으며, while 조건 문이 False일 때 실행
   while <조건문>:
       <수행할 문장>
   else:
       <while문이 종료된 후 수행할 문장>

Looping Dictionary

  • 딕셔너리 역시 반복문으로 요소 하나하나를 가져올 수 있으며, 키만, 값만, 키-값 쌍을 가져올 수 있음

    bts_rm = {'실명' : '김남준', '가명' : 'RM', '태어난 년도' : 1991 }
    
    for each_key in bts_rm:
        print(f"{each_key}{bts_rm[eack_key]}입니다.")
        
    # '실명' -> '실명'은 김남준입니다.' .......
    
    for each_value in bts_rm.value():
        print(f"{each_value}는 BTS 멤버 RM의 정보입니다.")
     # "김남준" ------> "김남준는 BTS 멤버 RM의 정보입니다. ........
     
    for each_key, each_value in bts_rm.items():
        print(f"{each_key}{each_value} 입니다.")
     # "실명", "김남준" ---------> '실명'는 김남준 입니다.'

Nested Dictionary

bts = {
	"RM": {
		"실명" : "김남준",
		"가명" : "RM",
		"생년월일" : "1994년 9월 12일",
		"출생지" : "대한민국 서울특별시 동작구 상도동",
		"학력" : "글로벌사이버대학교 방송연예학과",
		"포지션" : "리더 · 메인 래퍼"
	},
	"진": {
		"실명" : "김석진",
		"가명" : "진",
		"생년월일" : "1992년 12월 4일",
		"출생지" : "대한민국 경기도 과천시",
		"학력" : "한양사이버대학교 대학원",
		"포지션" : "서브 보컬"
	},
	"슈가": {
		"실명" : "민윤기",
		"가명" : "슈가",
		"생년월일" : "1993년 3월 9일",
		"출생지" : "대한민국 대구광역시 북구 태전동",
		"학력" : "글로벌사이버대학교 방송연예학과",
		"포지션" : "리드 래퍼"
	},
	"제이홉": {
		"실명" : "정호석",
		"가명" : "제이홉",
		"생년월일" : "1994년 2월 18일",
		"출생지" : "대한민국 광주광역시 북구 일곡동",
		"학력" : "글로벌사이버대학교 방송연예학과",
		"포지션" : "서브 래퍼 · 메인 댄서"
	},
	"지민": {
		"실명" : "박지민",
		"가명" : "지민",
		"생년월일" : "1995년 10월 13일",
		"출생지" : "대한민국 부산광역시 금정구 금사동",
		"학력" : "글로벌사이버대학교 방송연예학과",
		"포지션" : "리드 보컬 · 메인 댄서"
	},
	"뷔": {
		"실명" : "김태형",
		"가명" : "뷔",
		"생년월일" : "1995년 12월 30일",
		"출생지" : "대한민국 대구광역시 서구 비산동",
		"학력" : "글로벌사이버대학교 방송연예학과",
		"포지션" : "서브 보컬"
	},
	"정국": {
		"실명" : "전정국",
		"가명" : "정국",
		"생년월일" : "1997년 9월 1일",
		"출생지" : "대한민국 부산광역시 북구 만덕동",
		"학력" : "글로벌사이버대학교 방송연예학과",
		"포지션" : "메인 보컬 · 서브 래퍼 · 리드 댄서"
	}
}

print(bts["제이홉"]["생년월일"])

사전에 정확히 필요한 parameter 수와 구조를 알 수 없는 경우

Keyworded variable length of arguments

  • 그 수가 정해 지지 않고 유동적으로 변할 수 있는 keyword arguments
  • 선언을 위해서는 parameter 앞에 별표 두개 (**)로 시작해야 함

    일반적인 keyword argument와의 차이

    1. Argument 수를 0~N까지 유동적으로 넘길 수 있음
    2. Keyword가 미리 정해져 있지 않기 때문에 원하는 keyword를 유동적으로 사용 가능
    3. dictionary 형태로 지정

Variable arguments

  • keyword를 사용하지 않고 순서대로 값을 전달하는 방식의 argument
  • parameter 앞에 별표 한개(*)로 시작해야 하며 tuple 형태로 변환되어 함수에 전달

Mixing args and kwargs

  • 두 가지를 모두 사용하게 되면 어떠한 형태와 수의 argument도 허용 가능한 함수가 되어 parameter에 있어서 굉장히 유동적이게 됨
   def do_something(*args, **kwargs):
       ### some code here
       
   do_something(1, 2, 3, name = "정우성", age = 45)
profile
Slow and steady win the race

0개의 댓글