개발/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