Python

반복문

jsys 2024. 1. 6. 13:48

- for-loop, while

 

- 반복문이 필요한 이유 : 같은 코드를 반복해서 입력하지 않고 효율적으로 코드 작성 가능

# 똑같은 코드 반복 > 불편

print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")


for i in range(10):
  print("Hello Python")


# 두 식 모두 결과값은 같다
#Hello Python
#Hello Python
#Hello Python
#Hello Python
#Hello Python
#Hello Python
#Hello Python
#Hello Python
#Hello Python
#Hello Python

 

 

 

 

 

1. for-loop

- 특징 : 항상 반복문의 범위를 지정한다. (몇 번 반복문을 수행할 지 숫자로 컨트롤 가능)

 

- for 문의 구조

for <반복 변수> in <반복 범위>:
	<코드 블럭>

 

 

- 예시

for i in range(3):   # range(3) : 반복범위, i : for-loop에서 쓰는 지역변수(변경 가능)
  print(f'{i}번째 Hello Python')
  
  
# 0번째 Hello Python
# 1번째 Hello Python
# 2번째 Hello Python

 

 

 

- 반복범위 지정 시, 시퀀스 자료형도 사용 가능

nums = [1,2,3,4,5]
for num in nums:
  print(num)
  
  
#1
#2
#3
#4
#5
strings = "Hello"
for text in strings:
  print(text)
  

# H
# e
# l
# l
# o
tuples = (1,2,3,4)
for num in tuples:
  print(num)


# 1
# 2
# 3
# 4

 

 

 

 

- 중첩 For 문

 

* 형식

for <반복 변수1> in <반복 범위1>:
	for <반복 변수2> in <반복 범위2>:
    	<코드블럭>

 

 

* 예시

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

for x in x_list:
  for y in y_list:
    print(x,y)
    

# x1 y1
# x1 y2
# x2 y1
# x2 y2

 

 

 

 

 

2. While

 

- 특징 : 조건문이 False가 될 때까지 반복문을 수행(조건문이 True면 반복문 무한 수행)

 

 

- 예시

# 초기값 지정
i = 1
n = 3

while i <= n:  # 특정 조건문을 False가 되도록 코드를 작성하는 것이 포인트
  print(f'현재 {i} 번')
  i = i + 1
 
 
# 현재 1 번
# 현재 2 번
# 현재 3 번

 

 

 

 

 

3. break

 

- 반복문(for 문 또는 while 문) 안에서 break를 만나면 반복문이 강제 종료된다.

 

- 예시

i = 1
n = 3

while True:
  print(f'현재 {i} 번')

  if i >= 5:
    break

  i = i + 1
  
  
# 현재 1 번
# 현재 2 번
# 현재 3 번
# 현재 4 번
# 현재 5 번

 

 

* for-loop를 이용해서 문자열을 반복하다가 종료시키는 예시

# text가 t가 되면 break

texts = 'Python'
for text in texts:
  print(text)
  if text == 't':  # 조건식을 숫자로 비교, 문자 매칭 여부에 따라서 True/False
    print("text는 t입니다.")
    break
    
    
# P
# y
# t
# text는 t입니다.

 

 

 

 

4. 리스트 컴프리헨션

 

- for-loop 및 for-loop if 조건문을 한 줄로 처리할 수 있다.

- 잘 이용하면 리스트, 세트, 딕셔너리 데이터를 반복해서 처리해야 할 때 코드를 한 줄로 작성할 수 있어서 편리하다.

 

 

- 기본 구조

[<반복 실행문> for <반복 변수> in <반복 범위>]

[<반복 실행문> for <반복 변수> in <반복 범위> if <조건문>]

 

 

- 예시

 

1) 기본 리스트 컴프리헨션

numbers = [1,2,3,4,5]
result = []

for i in numbers:
  result.append(i ** 2)

result


# [1, 4, 9, 16, 25]

 

리스트 컴프리헨션을 이용하면 위 코드보다 간단한 코드를 작성할 수 있다.

numbers = [1,2,3,4,5]
result2 = [i ** 2 for i in numbers]
result2


# [1, 4, 9, 16, 25]

 

 

 

2) 조건문 리스트 컴프리헨션

numbers = [1,2,3,4,5]
result = []

for i in numbers:
  if i >= 3:
    result.append(i ** 2)

result


# [9, 16, 25]

 

위 코드를 조건문 포함 리스트 컴프리헨션을 이용해 다시 작성하면 이렇다.

numbers = [1,2,3,4,5]
result2 = [i ** 2 for i in numbers if i >= 3]
result2


# [9, 16, 25]

 

 

 

 

'Python' 카테고리의 다른 글

pandas 간단 정리  (1) 2024.01.06
Numpy 배열 생성 정리  (0) 2024.01.06
딕셔너리  (0) 2024.01.06
리스트 함수 메서드 정리  (0) 2024.01.06
문자열 함수 메서드 정리  (1) 2024.01.06