20221201 - 파이썬 (매개변수,절대값,재귀함수,

공현지·2022년 12월 1일

파이썬

목록 보기
6/11

writelines

#문자열을 담은 리스트의 내용을 파일 에 쓰는 write()함수

lines = ["we'll find a way we always have - Interstellar\n",
         "I'll find you and I'll kill you - Taken\n",
         "한글  I'll be back - Terminator 2\n"]


with open('movie_quotes.txt', 'w', encoding='utf-8') as file:
    file.writelines(lines)

def01

# 매개변수가 없는 함수 정의 - 호출

# 함수 정의(함수는 호출하는 윗쪽에 정의 되어야 한다)

def hello():
    print('hello world~!!!')

# 함수 호출
# 위에서 hello()함수를 정의하고, 밑에서 hello()함수를 호출해야함.
# 그 반대의 경우에는 에러 발생함.
hello()
hello()



hello world~!!!
hello world~!!!

def02

# 매개변수가 있는 함수 정의 - 호출
# 절대값 구하기
def abs(n):
    if n <0:
        n = -n
    else:
        n
    return n


result =abs(-30)
print('절대값=', result)



절대값= 30

def04

#1~n 까지 합을 구하는 프로그램
#1~n까지 합을 구해주는 함수

def  sum(n):
    # print(1~n까지 합을 구해주는 함수)
    sum=0
    for i in range (1, n+1): # i~n 까지 loop가 돌아감
        sum = sum +i

    print('1~{}까지의 합={}'.format(n, sum))
    

#함수 호출
sum(3)
sum(10)
sum(20)

def05

# 입력받은 매개변수에 따라 문자열을 반복출력

def str(text, cnt):
    for i in range(cnt):
        print('{}번째 {}'.format(i, text))



# 매개변수가 2개 이므로 2개의 값을 전달해서 str()함수를 호출함.

str('안녕하세요',3)

0번쨰안녕하세요
1번쨰안녕하세요
2번쨰안녕하세요

def06

#기본값 매개변수(default argument value)
#기본값 매개변수 cnt=1로 정의
#입력받은 매개변수에 따라 문자열을 반복출력
def str(text, cnt=1):
    for i in range(cnt): #1=0~2까지 3번 loop가 돌아감
        print('{}번쨰{}'.format(i,text))


# 매개변수가 2개 이므로 2개의 값을 전달해서 str()함수를 호출함.
str('Default Argument Value')

str('안녕하세요',3)

0번쨰Default Argument Value
0번쨰안녕하세요
1번쨰안녕하세요
2번쨰안녕하세요

def07

# 가변 매개변수(Arbitrary Argument List)
# 입력 개수가 달라질 수 있는 매개변수
# *를 이용하여 정의된 가변 매개변수는 튜플로 처리

# 매개변수 앞에  *를 붙이면 해당 매개변수는 가변매개변수로 지정됨
# def 함수이름(*매개변수):

def merge_string (*text):
    result=''
    print('type(text)->' ,type(text))
    #                 아버지가, 방에 , 들어가신다
    for s in text:
        result=result+" "+s
    return  result

print(merge_string('아버지가', '방에' , '들어가신다'))

type(text)-> <class 'tuple'>
아버지가 방에 들어가신다

def08

# 딕셔너리 형식 가변 매개변수
# 매개변수 앞에 **를 붙이면 딕셔너리 가변 매개변수가 됩니다.

# 함수 정의



def print_team(**players):
    i = 0
    for k in players.keys():
        i=i+1
        print('{0}={1} {2}'.format(k,players[k],i))

# 함수 호출
# 앞에있는건 키 뒤에있는건 벨류
print_team(김승규='GK', 손흥민='FK' ,이강인='MF' , 김민재='DF')


김승규=GK 1
손흥민=FK 2
이강인=MF 3
김민재=DF 4

def09

# 일반 매개변수와  함께 사용하는 가변매개변수

# 함수 정의

def print_args(n, *args): #매개변수의 순서가 바뀌면 안됨
    for i in range(n):
        print(i, args[i])



#함수호출
print_args(3,'파이썬' , '장고', '텐서플로')

0 파이썬
1 장고
2 텐서플로

def11 재귀함수

# 재귀함수(Recursive Function)
# : 함수가 자기자신을 호출하는 함수를 재귀함수라 한다.

def factorial(n):
    if n ==0:
        return 1
    else:
        return n * factorial(n-1)


print('3!=', factorial(3))

3*2*1

print('5!=', factorial(5))
5*4*3*2*!

print('10!=', factorial(10))

print('983!=', factorial(983))


3!= 6
5!= 120
10!= 3628800
983!= 461355633756622356666311183233160417575239537598373165931998480438159937606120874943936832081407066166647419206289204017683269742394859709404183622029929901136183174219046160561573367343647264874330034353104776194962416623214030519769858746434130593092789150660004486085203789402301998784646734025722498360397181251544258265773674987044501358784091847918927344649746375812368195316707142253540159328157383709261369953363309619520416831239870302159015117163717737075314604482820927198844502633407292024565108566583373117942898029945967185904622284267707197839585797105263608680715025655083945296644111954422888244457199299674158016385521839361704441731479171572869537576611006000312262183453593086015885879948270063396727317123366873747540203205768851278927470290864839034294724573519939115839185601713914372762495256275414244538338173922482631283910156252918731156080092163691692340417656186514210367702153659920721622116231022493057498270119607862097852827253422815850060014160296841522745116670310262772328243315550293415597750725808454064938094061014629926959820906760259114150341305030329395162716305607967281533790783513476722032832913010117117119415543241811224589694261700416346270497192179401653682371798742410589783000767430182222542837950250112327985010199369140523719654945734874650991824565703658344203203164886373427242143207819261912589093902099070340852447201760061494335486115708136943782151128462931098464404322110592994069338555100119907518398757992183512553987752907572552000743422664088927275494917600434796723299491098677127220099292026943688378690070269675515986662096375366646736162071341464605394133628700483668078216675987532956106938180896427746026364455163228937432380185101839849338182330932485243673783397642119956891236189731436905237244694353085833988093676994950173843139117588868827844950175456253276848275942247857696301794365052214739771289440216469740099431557519868845250863379202462671242396773028092608433786877305033215200423757402875837796444755969098251034726473419888810754608188219904287316705312440375375710166216460067177243799794661753093654302319372450168797481940335700668174810069167058382136854555690019101328568738003735512914775961380101630769260887954321511771248909802185176321537574457511865184101153881367596335366144000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

def12


# 함수를 변수에 담아서 사용하기

def plus(a,b):
    return a+b

def minus(a,b):
    return a-b

first=[plus , minus]  
print(first[0](1,2))  
print(first[1](1,2))


3
-1

람다함수

일반적인 함수를 한줄문으로 정의할수 있는 새로운 함수 정의

lamda01

print ("------------------------------------------------------------------------------------")
print ("--- 람다(lambda) 함수 정의  ->   1. 람다 함수 정의 예                                  --")
print ("--- 1] 일반적인 함수를 한 줄의 문(Statement)으로 정의할 수 있는 새로운 함수 정의 리터럴     --")
print ("--- . 함수 몸체에는 식(expression)만이 올 수 있다.                                     --")
print ("--- . 대부분의 경우 함수 이름을 정의하지 않으면서 일회성으로 활용할 함수를 정의할 때    활용  --")
print ("--- . 구문(syntax)-> ◦lambda 콤마로 구분된 인수들: 식(expression)                     --")
print ("------------------------------------------------------------------------------------")

f = lambda x: x+1
print("f->" , f(1))



f-> 2

lamda02


print ("------------------------------------------------------------------------------------")
print ("--- 람다(lambda) 함수 정의  ->   1. 람다 함수 정의 예                                  --")
print ("--- 2] 인수가 두개 있는 람다 함수를 지니는 지정 및 함수 호출                                --")
print ("------------------------------------------------------------------------------------")

g = lambda x, y : x+y
print("g(1,2)->", g(1,2))

#기본 인수를 지니는 람다 함수 정의
incr = lambda x, inc =1:x +inc
print("incr(10)->",incr(10)) #inc 기본 인수 값으로 1 사용
print("incr(10,5)-->" , incr(10,5))


g(1,2)-> 3
incr(10)-> 11
incr(10,5)--> 15

0개의 댓글