#문자열을 담은 리스트의 내용을 파일 에 쓰는 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)
# 매개변수가 없는 함수 정의 - 호출
# 함수 정의(함수는 호출하는 윗쪽에 정의 되어야 한다)
def hello():
print('hello world~!!!')
# 함수 호출
# 위에서 hello()함수를 정의하고, 밑에서 hello()함수를 호출해야함.
# 그 반대의 경우에는 에러 발생함.
hello()
hello()
hello world~!!!
hello world~!!!
# 매개변수가 있는 함수 정의 - 호출
# 절대값 구하기
def abs(n):
if n <0:
n = -n
else:
n
return n
result =abs(-30)
print('절대값=', result)
절대값= 30
#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)
# 입력받은 매개변수에 따라 문자열을 반복출력
def str(text, cnt):
for i in range(cnt):
print('{}번째 {}'.format(i, text))
# 매개변수가 2개 이므로 2개의 값을 전달해서 str()함수를 호출함.
str('안녕하세요',3)
0번쨰안녕하세요
1번쨰안녕하세요
2번쨰안녕하세요
#기본값 매개변수(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번쨰안녕하세요
# 가변 매개변수(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'>
아버지가 방에 들어가신다
# 딕셔너리 형식 가변 매개변수
# 매개변수 앞에 **를 붙이면 딕셔너리 가변 매개변수가 됩니다.
# 함수 정의
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
# 일반 매개변수와 함께 사용하는 가변매개변수
# 함수 정의
def print_args(n, *args): #매개변수의 순서가 바뀌면 안됨
for i in range(n):
print(i, args[i])
#함수호출
print_args(3,'파이썬' , '장고', '텐서플로')
0 파이썬
1 장고
2 텐서플로
# 재귀함수(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
# 함수를 변수에 담아서 사용하기
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
일반적인 함수를 한줄문으로 정의할수 있는 새로운 함수 정의
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
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