티스토리 뷰

반응형


#. 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


for _ in range(1,4):              # 변수 미사용 시 _(언더바) 사용 가능
    print('repeat')

=============== 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 캠퍼스 머신러닝기반의 빅데이터분석 양성과정

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday