반복문- for문
# 파이썬 반복문
# FOR 실습
For 흐름제어 실습
반복문 중요성
기본For사용
For문 패턴 실습
For-Else 구문
# 코딩의 핵심
# for i in <collection> collection형태는 어떤 집합의 모음이라고 생각하자 ex)리스트 튜플 딕셔너리
# <loop body>
for v1 in range(10): # range(stop)
print("v1 is :", v1)
v1 is : 0
v1 is : 1
v1 is : 2
v1 is : 3
v1 is : 4
v1 is : 5
v1 is : 6
v1 is : 7
v1 is : 8
v1 is : 9
for v2 in range(1, 11): # range(start,stop)
print("v2 is :", v2) #
v2 is : 1
v2 is : 2
v2 is : 3
v2 is : 4
v2 is : 5
v2 is : 6
v2 is : 7
v2 is : 8
v2 is : 9
v2 is : 10
for v3 in range(1, 11, 2): #range(start,stop,step)
print("v3 is :", v3) #
v3 is : 1
v3 is : 3
v3 is : 5
v3 is : 7
v3 is : 9
# 1 ~ 1000합
sum1 = 0
for v in range(1, 1001):
sum1 += v #sum1 = sum1 + v
print('1 ~ 1000 Sum : ', sum1) #1 ~ 1000 Sum : 500500
print('1 ~ 1000 Sum : ', sum1) #1 ~ 1000 Sum : 500500
print('1 ~ 1000 Sum : ', sum(range(1, 1001))) #1 ~ 1000 Sum : 500500
#sum(iterable) sum함수 안에서는 iterable한 자료형을 받는다.
#range라는 함수도 iterable한 값을 return한다.
#<class 'range'>다.
print('1 ~ 1000 안에 4의 배수의 합 : ', sum(range(1, 1001, 4)))
#1 ~ 1000 안에 4의 배수의 합 : 124750
# Iterables(반복할 수 있는 객체) 자료형 반복
# 문자열, 리스트, 튜플, 집합, 사전(딕셔너리)
# iterable 리턴 함수 : range, reversed, enumerate, filter, map, zip
# 예제1(리스트안에 문자열)
names = ["Kim", "Park", "Cho", "Lee", "Choi", "Yoo"]
for name in names:
print("You are", name)
You are Kim
You are Park
You are Cho
You are Lee
You are Choi
You are Yoo
# 예제2(리스트안에 숫자int형)
lotto_numbers = [11, 19, 21, 28, 36, 37]
for number in lotto_numbers:
print("Current number : ", number)
Current number : 11
Current number : 19
Current number : 21
Current number : 28
Current number : 36
Current number : 37
# 예제3(문자열)
word = 'Beautiful'
for s in word:
print('word : ', s)
word : B
word : e
word : a
word : u
word : t
word : i
word : f
word : u
word : l
# 예제4(딕셔너리)
my_info = {
"name": "Lee",
"Age": 33,
"City": "Seoul"
}
for key in my_info:
print("key, :", my_info[key]) #my_info.get(key) get메소드에 key를 넣어도 된다.
key, : Lee
key, : 33
key, : Seoul
for val in my_info.values():
print(val)
Lee
33
Seoul
# 예제5(if문과 for문 같이쓰기)
name = 'FineApplE'
for n in name:
if n.isupper(): #대문자인지 검사
print(n)
else:
print(n.upper()) #대문자가 아니라면 대문자로 변환
F
I
N
E
A
P
P
L
E
# break(순차 검색중 원하는 값을 찾으면 for문 탈출)
numbers = [14, 3, 4, 7, 10, 24, 17, 2, 33, 15, 34, 36, 38]
for num in numbers:
if num == 34:
print("Found : 34!")
break
else:
print("Not found : ", num)
#34를 찾고 탈출했으므로 Not found : 36, Not found : 38 출력이 되질않는다.
Not found : 14
Not found : 3
Not found : 4
Not found : 7
Not found : 10
Not found : 24
Not found : 17
Not found : 2
Not found : 33
Not found : 15
Found : 34!
# continue(어떤 조건 안에서 continue를 만나면 다시 조건을 검사하는 부분으로 이동한다.)
lt = ["1", 2, 5, True, 4.3, complex(4)]
for v in lt:
if type(v) is bool: #자료형을 대조할 떄는 is를 쓴다.
continue
print("current type : ", type(v))
print("multiply by 3:", v * 3)
#많은 데이터 중에 보기 싫거나 불필요하게 출력되거나 계산되지 않아야 될 값들이 있을 때
#continue를 써서 패스시킬 수 가 있다.
#print(True*3)은 True는 1로 볼 수 있어서 3이 나온다.
current type : <class 'str'>
multiply by 3: 111
current type : <class 'int'>
multiply by 3: 6
current type : <class 'int'>
multiply by 3: 15
current type : <class 'float'>
multiply by 3: 12.899999999999999
current type : <class 'complex'>
multiply by 3: (12+0j)
# for else 구문
numbers = [14, 3, 4, 7, 10, 24, 17, 2, 33, 15, 34, 36, 38]
for num in numbers: #34가 있기 때문에 break를 만나고 탈출한다.
if num == 34:
print("Found : 34!") #Found : 34!
break
else:
print("Not Found 34...")
for num in numbers: #자료에서 45가 없으므로 else구문이 실행된다.
if num == 45:
print("Found : 45!")
break
else:
print("Not Found 45...") #Not Found 45...
# 구구단 출력
for i in range(2, 10): #2일 때 1~9, 3일 때 1~9....9일 때 1~9
for j in range(1, 10):
print('{:4d}'.format(i * j), end='') #{:4d} 4자리의 정수형으로 출력
print() #줄바꿈
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
# 변환 예제
name = 'Aceman'
print('Reversed : ', reversed(name)) #Reversed : <reversed object at 0x00000219A8C49EE0>
#reversed함수를 호출하니까 reversed object형이 나오고 주소값(identity)이 나온다.
#형 변환을 해야 제대로 된 값이 나온다.
print('List : ', list(reversed(name))) #List : ['n', 'a', 'm', 'e', 'c', 'A']
print('Tuple : ', tuple(reversed(name))) #Tuple : ('n', 'a', 'm', 'e', 'c', 'A')
print('Set : ', set(reversed(name))) #Set : {'e', 'a', 'c', 'm', 'A', 'n'} 순서X
'Python > Today I learned' 카테고리의 다른 글
TIL#23 함수식 및 람다(lambda) (0) | 2021.05.15 |
---|---|
TIL#22 제어문 - 반복문(While문) (0) | 2021.05.15 |
TIL#20 제어문 - 조건문(if문) (0) | 2021.05.15 |
TIL#19 데이터타입(자료형)-집합(Set)형 (0) | 2021.05.15 |
TIL#18 데이터타입(자료형)-딕셔너리형 (0) | 2021.05.14 |