-
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