공부/파이썬 2021. 9. 26. 19:12

20210926 점프 투 파이썬

04-1 함수

 

def 함수이름( 매개변수 ) :

    수행할 문장1

    수행할 문장2

....

 

def add(a,b,c):

    return a+b+c

def add_print(a,b,c):

    print("%d, %d, %d 의 합은 %d입니다" % ( a,b,c,a+b+c) )

def say():

    return 'hi world'

def test_func(a,b)

    return a-b

test_func(4,1) = 3

test_func(b=3, a=10) = 7

 

매개변수 갯수를 모르는 경우 *매개변수 로 한번에 받을 수 있다.

def add_all( *num )

    result = 0

    for i in num:

        result = result + i

    return result

매개변수 갯수를 모르는 경우2  *매개변수 앞에 추가로 매개변수 넣을 수도 있음

def add_choice( choice, *num )

    if choice == "add" :

        result = 0

        for i in num :

             result = result + i

    elif choice == "mul":       

        result = 1

        for i in num :

             result = result * i

    return result 

매개변수를 키워드포함으로 받을 수도 있다. 딕셔너리화 가능

def print_kwargs(**kwargs):

    print(kwargs)

print_kwargs( a=1 ) -> {'a':1}

print_kwargs( name='test', a=2) -> {'name':'test', 'a':2}

 

함수의 결과값은 언제나 하나지만 여러개를 반환하려고 할 경우 튜플로 반환해준다

def ttt(a,b):

    return a+b, a*b, a-b

print( ttt(2,3) )-> (5, 6, -1)

 

매개변수에 미리 초기값을 넣어서 입력을 생략하게 할 수도 있다. c랑 동일

def tttt( a,b=3)

    return a+b

print( tttt(6) ) -> 9

 

함수내의 변수는 함수 내에서만 쓸수 있지만

global 가능

 

a = 1

def test() :

    global a

    a = a+1

test()

print(a)

 

def 말고 간결하게 함수 선언시 사용하는 lambda 

add = lambda a, b : a+b

print( add( 3,4 ) ) ----> 7

def add2(a,b):

    return a+b

print( add2(3,4) ) -----> 7

한줄짜리 간결한 함수 만들때 쓴다.

 

 

 

 

    

 

공부/파이썬 2021. 9. 26. 18:30

20210918 점프 투 파이썬

- 18일 공부했지만 26일 문서 작성

 

03-3 for 문

파이썬과 C의 가장 큰 차이중 하나

C의 for문이 쓰기 편한 while 에 가깝다면

파이썬의 for문은 리스트나 튜플 문자열등의 순환을 위한 명령이다.

while 문과 동일하게 continue 사용 가능 

 

test_list = ['one', 2, 'three', 4]

for i in test_list:

    print(i)

test_list2 = [ (1,2), (3,4) , (5,6) ]

for (first, second) in test_list2:

    print( first + second )

 

for 문과는 별개지만 for와 자주 사용 하는 range

a = range(10)  <- range(0,10) <- 0,1,2,3,4,5,6,7,8,9

a = range(1,11)  <- 1,2,3,4,5,6,7,8,9,10

range 개채를 생성한다.

 

a = 0

for i in range(1,11):

    a = a+i

a == 55

즉 특정 범위를 가진 개채를 쉽게 만들어줘서 for에서 사용하기 쉽다.

 

for i in range(2,5) :

    for j in range(1,10):

        print ( i*j, end=" ")

    print( " " )

구구단 2~4단 출력

 

리스트 내포 

for문의 결과가 리스트로 나오는 경우가 많은데(반복 처리의 결과) 아예 처음부터 리스트생성 시 

for문을 초기화에 사용 할 수 있다.

 

a = [1,2,3,4]

result = [ num * 3 for num in a ]

이경우 result [3,6,9,12]

result = [num*3 for num in a if num % 2 == 0]

이경우 if문으로 걸러져서 [6,12]

result = [x*y for x in range(2,5)

                 for y in range(1,10)] 

이 경우 result  는 구구단 2~4단 [2, 4,8,10,12,14,16,18, 3,6,9,12,15,18,21,24,27, 4,8,12,16,20,24,28,32,36 ] 

공부/파이썬 2021. 9. 5. 18:56

20210905 점프 투 파이썬

03-1 if문

if 조건 :

    실행

    실행

elif 조건2 :

    실행

    pass

    실행(실행 안됨)

 else:

    실행

C랑은 다르게 중괄호로 문단이 구성되는게 아니라 들여쓰기로 실행 문단이 구성된다.

들여쓰기는 탭이나 공백문자 둘다 가능하지만 같은 너비여야 같은 문단으로 인식 되니까 잘할것

조건 은 비교 연산자, and, or, not 사용가능

특이하게 x in 리스트, x not in 리스트 도 사용 가능하다.

리스트 대신 문자열 튜플 등등 가능

pass 는 들여쓰기 문단 아래 를 실행하지 않는걸로 한다. 보통은 하나의 if문을 패스할때 사용

 

03-2 while 문

if문이랑 비슷한 형태로 사용한다

들여쓰기로 문단 구성.

while 조건 :

    실행

    실행

    if 조건2 :

        conticnue

    실행

    if 조건3 :

        break

continue 랑 break는 C랑 동일하게 사용

조건검사로 가던지 while문을 빠져나가던지