[Python] 기초 - 반복문

ITmakesmeSoft·2022년 9월 3일
0

PYTHON [BASIC]

목록 보기
5/13
post-thumbnail

어떤 작업을 반복적으로 실행할 경우 사용되며, while문과 for문으로 구분된다.

while문

  • while문은 조건식이 참인 경우 반복적으로 코드를 실행
    • 조건이 참인 경우 들여쓰기 되어있는 코드 블록이 실행됨
    • 코드 블록이 모두 실행되고, 다시 조건식을 검사하여 반복적으로 실행
    • while문은 무한 루프를 하지 않도록 별도의 종료 조건이 필요
  • 복합 연산자(In-Place Operator)
    • 복합 연산자는 연산과 할당을 합쳐 놓은 것
      ex) a=a+1 ⇒ a+=1 / b=b-2 ⇒ b-=2
# 기본 문법
# while 조건(참인 경우만 반복실행):
#     반복 수행할 동작

a=0
while a<=10:
    a=a+1
print(a)

for문

  • for문은 시퀀스(String, tuple, list, range)를 포함한 순회 가능한 객체(iterable)의 요소를 모두 순회
    • 처음부터 끝까지 모두 순회하므로 별도의 종료 조건이 필요하지 않음.
  • Iterable
    • 순회할 수 있는 자료형(String, list, dict, tuple, range, set 등)
    • 순회형 함수(range, enumerate)
  • len(Iterable)
    • Iterable객체의 갯수를 출력
# 기본 문법 1
# for i in range(시작 숫자, 끝 숫자+1):
#     반복 수행할 동작

for a in range(1, 11):
    a=a+1
print(a)

# 기본 문법 2
# for e in elements: (배열)
#     반복 수행할 동작

array=[1,2,3,4,5,6,7,8,9,10]
for a in array:
    a=a+1
print(a)

딕셔너리 순회

  • keys() : key로 구성된 결과
  • values() : value로 구성된 결과
  • items() : (key, value)의 튜플로 구성된 결과
# 딕셔너리 순회
grades={'jonh':80, 'dan':90, 'eric':100}
for student in grades.keys():
    print(student)

for grade in grades.values():
    print(grade)

for student, grade in grades.items():
    print(student, grade)

enumerate 순회

  • enumerate() : 인덱스와 객체를 쌍으로 담은 열거형 객체 반환
    • (index, value) 형태의 튜플로 구성된 열거 객체 반환
    • enumerate(Iterable, [start=]) start를 지정 가능
arr=['a','b','c','d']
for ind, a in enumerate(arr):
		print(ind, a) # 0, 'a'
									# 1, 'b'
									# 2, 'c'
									# 3, 'd'

List Comprehension (Dictionary Comprehension)

  • 표현식과 제어문을 통해 특정한 값을 가진 리스트를 간결하게 생성하는 방법
  • 딕셔너리에서도 사용 가능
# [code for 변수 in iterable]
# [code for 변수 in iterable if 조건식]

# 기존 리스트 생성 방법
cubic_list = []
for number in range(1,4):
		cubic_list.append(number**3)
print(cubic_list)

# 리스트 컴프리헨션 이용
cubic_list= [number**3 for number in range(1,4)]
print(cubic_list)
# 훨씬 간결하게 작성 가능. 단 너무 남용 시 가독성이 떨어짐.

# 기존 딕셔너리 생성 방법
cubic_dict = {}
for number in range(1,4):
		cubic_dict[number] = number**3
print(cubic_dict) # {1:1, 2:8, 3:27}

# 딕셔너리 컴프리헨션 이용
cubic_dict={number:number**3 for number in range(1,4)}
print(cubic_dict) # {1:1, 2:8, 3:27}

반복 제어

  • break : 반복문을 종료
  • continue : continue 이후의 코드 블록은 수행하지 않고, 다음 반복을 수행
  • for-else : 끝까지 반복문을 실행한 이후에 else문 실행
    • break를 통해 중간에 종료되는 경우에는 else문 실행되지 않음
  • pass : 아무것도 하지 않고 넘어감.
profile
💎 Daniel LEE | SSAFY 8th

0개의 댓글