반복문- 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

 

 

 

 

+ Recent posts