ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 문법 기초 10 - 반복문 for(continue, break)
    Python 2022. 10. 22. 15:41

     

    # for i in [1,2,3,4,5]: # list
    # for i in (1,2,3,4,5): # tuple
    for i in {1,2,3,4,5}:  # set 순서는 없지만 for문 사용시 순서대로 나온다.
        print(i, end = ' ') # 한 줄로 출력하려면 end 사용
    
    
    <console>
    1 2 3 4 5

    for 변수명 in 식으로 나열한다. 한개씩 빠져나오면서 출력된다.

    어떠한 타입도 가능하다.

     

    soft = {'java':'웹용언어', 'python':'만능언어', 'MariaDB':'데이터처리'}
    print(soft.items()) # dict_items([('java', '웹용언어'), ('python', '만능언어'), ('MariaDB', '데이터처리')]) 리스트안의 튜플로 적용된다.
    
    for i in soft.items():
        # print(i)
        print(i[0]+ ' ^^; ' + i[1])
    
    
    <console>
    dict_items([('java', '웹용언어'), ('python', '만능언어'), ('MariaDB', '데이터처리')])
    java ^^; 웹용언어
    python ^^; 만능언어
    MariaDB ^^; 데이터처리

    갯수에 상관없이 [0] [1] 순으로 배치되어있으며 모든 key, value 가 나온다.

     

    for k in soft.keys():
        print(k, end = ' ')
        
    print()
    for k in soft.values():
        print(k, end = ' ')
    
    
    <console>
    java python MariaDB 
    웹용언어 만능언어 데이터처리

    key, valeu 만 따로 뽑아서 출력할 수도 있다.

     

    li = ['a', 'b', 'c']
    for idx, data in enumerate(li): # for 문 돌리면서 인덱싱을 하고 싶을 때 사용
    	print(idx, data)
    
    
    <console>
    0 a
    1 b
    2 c

    list 타입의 for 문 적용(indexing 사용)

     

    for 문으로 구구단 만들기

    for n in [2, 3]:
    	print('---{}단---'.format(n))
    	for i in [1,2,3,4,5,6,7,8,9]:
    		print('{}*{}={}'.format(n, i, n * i), end = ' ')
    	print()
    
    
    <console>
    ---2단---
    2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 
    ---3단---
    3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27

     

    datas = [1,2,3,4,5]
    for i in datas:
    	if i == 3: continue
    	if i == 4: break
    	print(i, end = ' ')
    else: # else 는 필수가 아닌 옵션이다. 써도 되고 안 써도 그만
    	print('정상 종료일 때 수행')
    
    
    <console>
    1 2

    for 문에서의 continue 와 break 사용 예제

     

    jumsu = [95, 70, 60, 50, 100]
    number = 0
    for jum in jumsu:
    	number += 1
    	if jum <70: continue
    	print('%d번째 수험생은 합격'%number)
    
    
    <console>
    1번째 수험생은 합격
    2번째 수험생은 합격
    5번째 수험생은 합격

    70점 미만의 학생들은 넘기고 이상의 학생들만 출력하고 싶을 때 사용!

    continue로 70점을 넘기지 못한 학생들의 점수는 pass 하고 있다.

     

    li1 = [3,4,5]
    li2 = [0.5,1,2]
    result = []
    for a in li1:
        for b in li2:
            # print(a + b, end = ' ')
            result.append(a + b)
    print(result)
    
    datas = [a + b for a in li1 for b in li2]
    print(datas)
    
    
    <console>
    [3.5, 4, 5, 4.5, 5, 6, 5.5, 6, 7]
    [3.5, 4, 5, 4.5, 5, 6, 5.5, 6, 7]

    li1 의 숫자들을 li2와 더한 값을 구해 list 타입으로 출력하기

    list 타입은 순서가 있기 때문에 순서대로 더하여 나온 값들을 나열한 것이다.

     

    for test_str in ['111-1234','일이삼-사오육칠','2222-1234']:
    	if re.match(r'^\d{3,4}-\d{4}$', test_str): # ^가 대괄호 안에 없으면 시작 부분
    		print(test_str, '전화번호 맞아요')
    	else:
    		print(test_str, '음...')
    
    
    <console>
    111-1234 전화번호 맞아요
    일이삼-사오육칠 음...
    2222-1234 전화번호 맞아요

    if 문과 for 문, 정규식 표현을 사용해서 전화번호가 맞는지에 대한 유무를 확인 가능

     

    print(sum([1,2,3]))   # 집합형 자료의 합을 구하는 내장형 함수이다.
    print('사전형 자료로 과일값 출력')
    price = {'사과':2000, '감':500, '배':1000}
    guest = {'사과':2, '감':3}
    bill = sum(price[f] * guest[f] for f in guest)
    print('고객이 구해한 과일 총액 : {}원'.format(bill))
    
    
    <console>
    6
    사전형 자료로 과일값 출력
    고객이 구해한 과일 총액 : 5500원

    sum 함수를 통해 값들을 다 더할 수 있다.

    price 와 guest가 dict 타입이기 때문에 for문을 사용했다. 둘의 key값을 맞춰줘야되기 때문이다.

    price[f] * guest[f] [] 안에 f를 넣은 이유는 guest 값과 대칭되는 값들만을 곱하기 위해서이다.

     

    temp = [1,2,3]
    for i in temp:
    print(i, end = ' ')
    print([i for i in temp])
    print({i for i in temp})
    
    temp2 = list()
    for i in temp:
    	temp2.append(i + 10)
    print(temp2)
    temp2 = [i + 10 for i in temp]
    print(temp2)
    
    
    <console>
    1 2 3 
    [1, 2, 3]
    {1, 2, 3}
    [11, 12, 13]
    [11, 12, 13]

    for 문으로 출력하고 그것을 list 타입, set 타입으로 출력한 코드이다.

    함수를 호출해서 list 타입으로 변경도 가능하다.

    람다함수로도 출력해 보았다.

     

    datas = [1,2,'a',True, 3]
    li = [i * i for i in datas if type(i) == int] # for문을 통해서 타입이 int인 경우에만 출력
    print(li)
    
    print()
    datas = {1,1,2,2,2,3} # 중복 제거해준다. set 타입
    se = {i * i for i in datas} # {} 대신에 [] 로 깜싸면 list 타입으로 나온다.
    print(se)
    
    
    <console>
    [1, 4, 9]
    {1, 4, 9}

    람다함수로 for문과 if문을 사용하여 출력하였다.

    {}를 사용하여 set 타입으로 출력하였다.

     

    id_name = {1:'tom', 2:'james'}
    name_id = {value:key for key, value in id_name.items()}
    print(name_id)
    
    
    <console>
    {'tom': 1, 'james': 2}

    key 값과 valeu 값의 순서를 변경하여 출력하였다.

     

    'Python' 카테고리의 다른 글

    for 문 예제  (0) 2022.10.22
    Python 문법 기초 11 - 반복문 for + range  (0) 2022.10.22
    if 문 안의 while 문(번외편), 쓰레드 사용  (0) 2022.10.22
    while 문 예제  (0) 2022.10.22
    Python 문법 기초 9 - while 문  (0) 2022.10.22

    댓글

Designed by Tistory.