개발/Python

#05 For

dev-bleck 2022. 7. 28. 18:04

For

  • 반복 가능(iterable)한 객체를 더 이상 꺼낼 수 없을 때까지 반복
  • list, tuple, set, dict, str
# 기본 구조
for <variable> in <iterable>:
    code context

예제

lst = [1, 2, 3, 4]
for item in lst:
    print(item ** 2) # lst 리스트에 있는 인자를 순차적으로 제곱해서 출력
>>> 1
4
9
16
n = 9
lst = [1, 2, 3, 4, 5, 6, 7, 8 ,9]
for item in lst:
    print(f"{n} X {item} = {n * item}") # f-string을 이용한 for문
>>> 9단 출력
# 실습 1
# for문과 조건문을 이용하여 다음의 리스트에서 음수만 출력하시오
lst = [-2, 1, 4, -88, 12, -12]
for item in lst:
    if item < 0: # if 조건문 사용해서 음수면 출력
        print(item)
>>> -2
-88
-12
# 실습 2
# for문과 조건문을 이용하여 다음의 리스트에서 3의 배수만 출력하시오
lst = [3, 33, 100, 23, 81, 44]
for n in lst:
    if n % 3 == 0: # 3으로 나눠서 나머지가 0이면 3의 배수
        print(n)
>>> 3
33
81
# 실습 3
# for문과 조건문을 이용하여 다음의 리스트에서 50미만의 3의 배수만 출력하시오
lst = [3, 33, 100, 23, 81, 44]
for n in lst:
    if n % 3 == 0 and n < 50: # 3으로 나눠서 나머지가 0이고, 50보다 작으면 출력
        print(n)
>>> 3
33
# 실습 4
# 다음과 같이 리스트에 동물 이름이 있다. 
#for문만 이용해서 첫글자를 대문자, 나머지는 소문자로 변경해서 출력하시오.
lst = ["dOg", "caT", "raBBiT", "GIrAffe", "tIGer"]
for n in lst:
    lst = n[0].upper() + n[1:].lower() # .upper(), .lower() 메소드 사용
    print(lst)
>>> Dog
Cat
Rabbit
Giraffe
Tiger
# 실습 5
# 다음과 같이 이메일이 리스트에 담겨 있다. for문과 문자열 메소드를 이용하여 아이디만 출력하시오
email_list = ["user1004@gmail.com", "user100@naver.com", "user1@gmail.com", "user14@hanmail.net"]
for email in email_list:
    email_list = email.split("@")[0] # .split() 메소드 사용해서 "@"을 기준으로 문자열을 나눔
    print(email_list)
>>> user1004
user100
user1
user14
# 실습 6
# 다음과 같은 이메일 리스트에서 @gmail.com에 해당하는 이메일 주소만 출력하시오
email_list = ["user1004@gmail.com", "user100@naver.com", "user1@gmail.com", "user14@hanmail.net"]
for email in email_list:
    if email.endswith("@gmail.com"): # .endswith() 메소드 사용해서 "gmail.com"으로 끝나는 항목만 추려냄
        print(email)
>>> user1004@gmail.com
user1@gmail.com

Range

  • 특정 구간의 숫자의 범위를 만들어 주는 함수
  • 슬라이싱 기법을 이용해서 숫자의 범위를 만들어 줌
  • 파이썬은 range라는 숫자의 범위를 가진 iterable한 특수한 객체를 반환
  • for와 같이 자주 사용됨
range(0, 10) # 숫자 0부터 9까지 순차적으로 뽑겠다는 뜻, 시작값 생략 가능(0이 기본값)
range(10)
>>> range(0, 10)

type(range(0, 10))
>>> range

list(range(2, 11, 2)) # 10까지 짝수만 출력
>>> [2, 4, 6, 8, 10]

list(range(10, 0, -1)) # 역순으로 출력
>>> [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

n = 9
for i in range(1, 10):
    print(f"{n} X {i} = {n * i}")
>>> 9단 출력
# 실습 1
# for와 range 함수를 사용해서 1 ~ 40까지 숫자들 중에서 4의 배수만 출력하시오
for i in range(1, 41):
    if i % 4 == 0:
        print(i)
>>> 4의 배수 출력

for x in range(40, 0, -4):
    print(x)
>>> 4의 배수 역순 출력

sum_value = 0
for i in range(1, 11):
    sum_value += i
print(sum_value)
>>> 55

중첩 For

for i in range(2, 10):
    print(f"{i}단 입니다.")
    for j in range(1,10):
        print(f"{i} X {j} = {i * j}")
>>> 구구단 출력
# *표 출력하기 예제
# print 후 자동 줄바꿈이 되는 이유는 기본 end 값이 \n 이기 때문
for i in range(1, 6):
    print("*" * i)
>>> 
*
**
***
****
*****

n = 5
for i in range(n):
    for j in range(i + 1):
        print("*", end = "")
    print()
>>> 
*
**
***
****
*****
728x90