[Python] 파이썬 기초_함수

youuu·2022년 12월 1일
0

Python

목록 보기
5/8

writelines _ 파일 write

📋 writelines.py

  • writelines 하나의 라인 단위로
  • with open 하면 자동으로 close한다.
# 문자열을 담은 리스트의 내용을  파일에 쓰는 writelines()함수
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='UTF8') as file:
    file.writelines(lines)

🥞 함수호출

📋 def01.py

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

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

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

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

hello()
hello()

🥞 함수호출 _ 절대값 구하기

📋 def02.py

# 매개변수가 있는 함수 정의 - 호출
# 절대값 구하기

def abs(n):
    if n < 0:
        n = -n
    else:
        n
    return n


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

🥞 함수호출 _ 최대값 최소값

📋 def03.py

# 최대값, 최소값 구하기
# 최대값을 구해주는 함수

def max(n1, n2):
    print('최대값 구해주는 함수')
    if(n1 > n2):
        return n1
    else:
        return n2

# 최소값을 구해주는 함수
def min(n1, n2):
    print('최소값을 구해주는 함수')
    if (n1 < n2):
        return n1
    else:
        return n2
print('2개의 정수를 입력하세요?')
n1 = input("첫번째")
n2 = input("두번째")

nn1 = int(n1)
nn2 = int(n2)

max = max(nn1, nn2)
min = min(nn1, nn2)

print('max ->', max)
print('min ->', min)

🥞 함수호출 _ 1~n까지 합 구하기

📋 def04.py

  • for문 사용
# 1~n 까지 합을 구하는 프로그램
# 1~n까지 합을 구해주는 함수

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

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

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

🥞 함수호출 _ 문자열을 반복출력

📋 def05.py

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

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


# 매개변수가 2개 이므로 2개의 값을 전달해서 str()함수를 호출함.
str('안녕하세요', 3)

🥞 디폴트 cnt=1 매개변수가 2개

📋 def06.py

# 기본값 매개변수(Default Argument Value)
# 기본값 매개변수 cnt=1로 정의
# 입력받은 매개변수에 따라 문자열을 반복출력

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


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

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

🥞 함수호출 _ 가변 매개변수

📋 def07.py

  • 가변 매개변수(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('아버지가', '방에', '들어 가신다'))

🥞 ** _ 딕셔너리 형식 가변 매개변수

📋 def08.py

  • 딕셔너리 형식 가변 매개변수
  • 매개변수 앞에 **를 붙이면 딕셔너리 가변 매개변수가 됩니다.
# 함수 정의
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(김승규='GX', 손흥민='FW', 이강인='MF', 김민재='DF')

🥞 가변매개변수를 일반 매개변수와 사용

📋 def09.py

*첫번째건 무조건 일반 매개변수. 나머진 가변 매개변수

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

# 함수 정의
def print_args(n, *args):
    for i in range(n):
        print(i, args[i])

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

🥞 factorial 사용 _ 재귀함수

📋 def10.py

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

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1) # 3이면 3 *2 *1

print('3 !=', factorial(3))
print('5 !=', factorial(5))
print('10 !=', factorial(10))
print('983 !=', factorial(983))

🥞 factorial _ 재귀함수

📋 def11.py

  • 재귀함수(Recursive Function)
  • : 함수가 자기자신을 호출하는 함수를 재귀함수라 한다.
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1) # 3이면 3 *2 *1

print('3 !=', factorial(3))
print('5 !=', factorial(5))
print('10 !=', factorial(10))
print('983 !=', factorial(983))

🥞 lambda

📋 lambda01.py

람다(lambda) 함수 정의 ->
1. 람다 함수 정의 예

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

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

🥞 lambda _ 인수가 두개 있는 람다 함수

📋 lambda02.py

  • 람다 함수 정의->
  1. 람다함수 정의 예
    2) 인수가 두개 있는 람다 함수를 지니는 변수 지정 및 함수 호출
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))
print("incr(10, 5)-> ", incr(10, 5))

profile
공부중인 주니어 개발자

0개의 댓글