티스토리 뷰
#. for문
for 변수 in range(시작값, 종료값+1, 증가값) # 증가++
반복할 명령어
for 변수 in 리스트 # 리스트도 적용 가능
반복할 명령어
for 변수 in range(시작값, 종료값-1, 감소값) # 감소--
반복할 명령어
for i in range(1,6):
print(i)
print('end')
=============== RESTART: D:/Q.py ===============
1
2
3
4
5
end
=============== RESTART: D:/Q.py ===============
repeat
repeat
repeat
fruit = ['apple','grape','lemon']
for i in fruit: # 리스트도 적용 가능
print(i)
=============== RESTART: D:/Q.py ===============
apple
grape
lemon
for i in range(5,0,-1):
print(i)
print('end')
=============== RESTART: D:/Q.py ===============
5
4
3
2
1
end
# 컴프리핸션(Comprehension) : 반복문의 축약
# list = return대상 for 반복변수 in 범위 (if 조건식)]
3 1 2
>>> l1 = [1,2,3]
>>> [i + 10 for i in l1]
[11, 12, 13]
>>> l2 = [10,20,30]
>>> [i + j for i,j in zip(l1, l2)]
[11, 22, 33]
>>> list = [i for i in range(1,10) if i%2 ==0]
>>> list
[2, 4, 6, 8]
#. 중첩 for문
for fo1 in range(0, 3, 1) :
for fo2 in range(0,3,1) :
print('fo1 = %d, fo2 = %d' % (fo1,fo2))
=============== RESTART: D:/Aaron/Q.py ===============
fo1 = 0, fo2 = 0
fo1 = 0, fo2 = 1
fo1 = 0, fo2 = 2
fo1 = 1, fo2 = 0
fo1 = 1, fo2 = 1
fo1 = 1, fo2 = 2
fo1 = 2, fo2 = 0
fo1 = 2, fo2 = 1
fo1 = 2, fo2 = 2
# 구구단 만들기
print('[[ 구구단의 외자! @_@ ]]\n')
for i in range(1, 10) :
for j in range(1, 10) :
print('%d x %d = %2d ' % (j, i, i*j), end = '')
print('')
=============== RESTART: D:/Aaron/Q.py ===============
[[ 구구단의 외자@_@ ]]
1 x 1 = 1 2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5 6 x 1 = 6 7 x 1 = 7 8 x 1 = 8 9 x 1 = 9
1 x 2 = 2 2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10 6 x 2 = 12 7 x 2 = 14 8 x 2 = 16 9 x 2 = 18
1 x 3 = 3 2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15 6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27
1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20 6 x 4 = 24 7 x 4 = 28 8 x 4 = 32 9 x 4 = 36
1 x 5 = 5 2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25 6 x 5 = 30 7 x 5 = 35 8 x 5 = 40 9 x 5 = 45
1 x 6 = 6 2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36 7 x 6 = 42 8 x 6 = 48 9 x 6 = 54
1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49 8 x 7 = 56 9 x 7 = 63
1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64 9 x 8 = 72
1 x 9 = 9 2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81
#. while문
변수 = 시작값
while 변수 < 종료값 :
상단 조건이 True일 경우 수행
변수 = 변수 + 증가값
i = 1
while i < 4:
print('%d 번' % i)
i = i+1
=============== RESTART: D:/Aaron/Q.py ===============
1 번
2 번
3 번
# 무한반복(무한루프)
# 무한루프는 while문만 가능
# for문은 리스트에 있는 개수만큼만 반복하고 종료
while True :
print('Hungry', end = '')
================ RESTART: D:/Aaron/Q.py ================
HungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungry
HungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungryHungry.......
#. 반복문 내부 기능
1) continue : 다음 명령어를 넘기고, 이후 반복으로 (반복문 유지)
for i in range(1,11) :
if i % 2 != 0 : # 짝수가 아닌 수는 제외하고 출력
continue
print(i)
================ RESTART: D:/Aaron/Q.py ================
2
4
6
8
10
2) break : 반복문 종료
i = 0
while True :
print(i)
i += 1
if i == 3 : # i = 3 일 경우, 반복문 종료
break
================ RESTART: D:/Aaron/Q.py ================
0
1
2
3) pass, next : 이후 반복으로 pass (조건문에서 명령을 수행을 하지 않을 경우 사용 )
# pass
for i in range(1,11) :
if i % 2 != 0 :
pass # 짝수가 아닐 경우, 명령을 수행하지 않고 다음 반복으로 pass
else :
print(i)
================ RESTART: D:/Aaron/Q.py ================
2
4
6
8
10
# next
for i in range(1,11) :
if i % 2 != 0 :
next # 짝수가 아닐 경우, 명령을 수행하지 않고 next 반복으로
else :
print(i)
================ RESTART: D:/Aaron/Q.py ================
2
4
6
8
10
#. for문에 여러 리스트 묶어서 동시에 전달(zip)
>>> l1 = ['a','b','c']
>>> l2 = [1,2,3]
>>> for x, y in zip(l1, l2) :
print('%s = %d' % (x, y))
a = 1
b = 2
c = 3
#. 반복문 결과를 차례대로 출력 (end)
end = '구분기호' # print의 개행특성을 무시하고 차례대로 출력
for i in range(1,6) :
print(i, end =' ')
=============== RESTART: D:/Aaron/Q2.py ===============
1 2 3 4 5
for i in range(1,6) : # 마지막도 포함
print(i, end ='/')
=============== RESTART: D:/Aaron/Q2.py ===============
1/2/3/4/5/
#. Q
# for문을 이용한 벡터 연산
l1 = ['1,000','2,000','3,500']
l2 = []
for i in l1 :
l2.append(int(i.replace(',','')))
print(l2)
=============== RESTART: D:/Aaron/Q2.py ===============
[1000, 2000, 3500]
# while문 사용
sum, i = 0, 0
while i<101:
sum += i
if sum >= 1000 :
break
i += 1
print('1~100의 합계를 최초로 1000이 넘게 하는 숫자는 %d 입니다.' % i)
print('합 = %d' % sum)
================ RESTART: D:/Aaron/Q.py ================
1~100의 합계를 최초로 1000이 넘게 하는 숫자는 45 입니다.
합 = 1035
# for문 사용
sum = 0
for i in range(1, 101) :
sum += i
if sum >= 1000 :
break
print('1~100의 합계를 최초로 1000이 넘게 하는 숫자는 %d 입니다.' % i)
print('합 = %d' % sum)
================ RESTART: D:/Aaron/Q.py ================
1~100의 합계를 최초로 1000이 넘게 하는 숫자는 45 입니다.
합 = 1035
#. D
# 어떤 리스트에서 특정 패턴을 갖는 원소를 모두 출력하려고 한다.
# 예를들어 ['isnan','nan','trunc','nanf','sum'] 의 리스트에서 nan패턴이 포함된 원소를 찾아 ['isnan', 'nan', 'nanf'] 리스트로 출력
# my_func(list,pattern) 형식으로 list에서 pattern을 찾는 사용자 정의 함수를 생성
>>> l1 = ['isnan','nan','trunc','nanf','sum']
>>> def my_func(list,pattern) :
ans = []
for i in list :
if i.find(pattern) >= 0 :
ans.append(i)
return(ans)
>>> my_func(l1,'nan')
['isnan', 'nan', 'nanf']
# for문을 사용하는 경우
>>> l2 = []
>>> for i in l1:
if 'nan' in i:
l2.append(i)
>>> l2
['isnan', 'nan', 'nanf']
# 모듈 안에 있는 메서드명을 검색하기 위한 사용자 정의 함수 생성
>>> def find_method(module,pattern):
search = []
for i in dir(module):
if pattern in i:
search.append(i)
return(search)
>>> find_method(math, 'na')
['__name__', 'isnan', 'nan']
# 1~45까지의 로또 번호 생성 프로그램(6개의 중복되지 않는 숫자 추출)
import random
lotto = []
for i in range(0, 6) :
ran = random.randrange(1, 46)
if ran not in lotto :
lotto.append(ran)
print('생성된 Lotto 번호', lotto)
=============== RESTART: D:/Aaron/Q.py ===============
생성된 Lotto 번호 [45, 5, 20, 13, 25]
# while문을 사용한 방법
import random
lotto = []
while len(lotto) < 6:
ran = random.randrange(1, 46)
if ran in lotto:
pass
else:
lotto.append(ran)
lotto.sort() # 원본 자동 갱신
print('생성된 Lotto 번호', lotto)
=============== RESTART: D:/Aaron/Q.py ===============
생성된 Lotto 번호 [1, 2, 21, 29, 33, 41]
# 별 그리기
space = ' '
star = '\u2605'
for i in range (1,10) :
if(i <= 5) :
print(space*(5-i) + star*(2*i-1))
else :
print(space*(i-5) + star*(2*(10-i)-1))
================ RESTART: D:/Aaron/Q.py ================
★
★★★
★★★★★
★★★★★★★
★★★★★★★★★
★★★★★★★
★★★★★
★★★
★
참고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성과정
'Python > Process' 카테고리의 다른 글
[Python] 리스트 메서드 (list method) (0) | 2019.01.25 |
---|---|
[Python] 리스트 (list) (0) | 2019.01.25 |
[Python] 조건문(if, ifelse, elseif) (0) | 2019.01.24 |
[Python] 문자열 메서드(method) (0) | 2019.01.23 |
[Python] 사용자 정의 함수 및 적용 함수(def, lambda, map) (0) | 2019.01.23 |