Python 중급 01. 함수와 변수

yoong·2023년 4월 12일

1. Python

목록 보기
10/21

Python 중급 1.

01.함수

1. 함수 정의

: 수학에서의 함수와 동일. 특정 코드를 필요에 따라 함수 호출을 통해 사용함. a. 코드 반복을 줄일 수 있는 효과 b.재사용 c.가독성과 효율성 좋음.

def addFun(x,y)
	return x + y

addFun(3,4)

2.내장함수 vs 사용자 함수

a. 내장함수 (Built-in Functions)

: 파이썬에서 기본으로 제공하는 함수

b. 사용자 함수(User-defined function)

: 사용자가 직접 선언하는 함수

def printUserName(name):
	print(f'{name}고객님, 안녕하세요.')

3.함수 선언

: 함수는 def 키워드, 함수명,:,들여쓰기를 이용해서 선언함.

def addCal():
	n1 = int(input('n1 입력:'))
    n2 = int(input('n2 입력:'))
    print(f'n1+n2 ={n1 +n2}')

a. lambda 함수

: lambda 키워드를 이용하면 함수 선언을 간단하게 할 수 있음.

#기존
def calculator(n1,n2):
    return n1 + n2

returnValue = calculator(10,20)
print(f'returnValue: {returnValue}')

#lambda적용
calculator = lambda n1, n2: n1+n2
returnValue =calculator(10,20)
print(f'returnValue: {returnValue}')

4.함수 호출

: 함수명과 '()'를 이용해서 함수 호출

addCal()

함수 내에서 또 다른 함수 호출

:

def fun1():
    print('1번')
    fun2()
    print('5번')

def fun2():
    print('2번')
    fun3()
    print('4번')

def fun3():
    print('3번')

fun1()
#구구단 연쇄적으로 호출하기 
def guguDan2():
    for i in range (1,10):
        print('2 * {} = {}'.format(i , 2 * i))
    guguDan3()

def guguDan3():
    for i in range (1,10):
        print('3 * {} = {}'.format(i , 3 * i))
    guguDan4()

def guguDan4():
    for i in range (1,10):
        print('4 * {} = {}'.format(i , 4 * i))

guguDan2()

5. 중첩함수

  • 함수안에 또 다른 함수가 있는 형태
  • 내부 함수를 함수 밖에서 호출 할 수없다.
def out_funtion():
	print('out_function called!')
   	
    def in_function(): #내부함수
    	print('in_function called!')
        
    in_function()	#내부함수 호출
    
    
out_funtion() 
#예시 
def calculator(n1,n2,operator):

    def addCal():
        print(f'덧셈 연산: {n1 + n2}')
    def subCal():
        print(f'뺄셈 연산: {n1 - n2}')
    def mulCal():
        print(f'곱셈 연산: {n1 * n2}')
    def divCal():
        print(f'나눗셈 연산: {n1 / n2}')

    if operator == 1:
        addCal()
    elif operator == 2:
        subCal()
    elif operator == 3:
        mulCal()
    elif operator == 4:
        divCal()


while True:
    num1 = float(input('실수(n1) 입력: '))
    num2 = float(input('실수(n2) 입력: '))
    operatorNum = int(input('1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 5.프로그램 종료'))

    if operatorNum == 5:
        print('bye~')
        break

    calculator(num1,num2,operatorNum)


01.변수와 데이터

1.인수와 매개변수

: 함수 호출 시 함수에 데이터를 전달 할 수있으며

  • 인수와,매개변수의 개수는 일치해야함
#매개변수 2 인수 2

def greet(customer1,customer2):
    print('{}님,{}님 안녕하세요.'.format(customer1,customer2))

greet('박감자','김감자')
  • 매개변수 개수가 정해지지 않은경우 '*'를 이용
    (가령, 매개변수 1개 /2개 /3개 몇개 받을지 정해지지 않은 경우)
def printNumber(*numbers):
    for number in numbers:
        print(number,end='')
    print()

printNumber()
printNumber(1,2)
printNumber(1,2,3)

2.데이터 반환

: return 키워드를 이용하면 함수 실행 '결과'를 '호출부'로 반환 할 수있음. return 이후의 코드는 실행되지 않음.

def divideNumber(n):

    if n % 2 == 0:
        return '짝수'
    else:
        return '홀수'

returnValue = divideNumber(8)
print(f'returnValue: {returnValue}')
import random

def oddRandom():

    while True:
        rNum = random.randint(1,100)
        if rNum % 2 != 0:
            break

    return rNum

print(f'returnValue: {oddRandom()}')

3.전역변수,지역변수

a. 전역변수

: 함수 밖에 선언된 변수로 어디에서나 사용은 가능하나 함수 안에서 수정할 수 없음.

num_out = 10
def printNumber():
	print(f'num_out:{num_out}')
    
printNumbers()
print(f'num_out: {num_out}')

b.지역변수

: 함수 안에 선언된 변수로 함수 안에서만 사용 가능.

def printNumber():
	num_in = 20
    print(f'num_in: {num_in}')
    
 printNumbers() 

c.global 키워드

: global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.

num_out = 10
def printNumbers():
	global num_out
    num_out = 20
    print(f'num_out: {num_out}') #20 
    
printNumbers()
print(f'num_out: {num_out}') #20 




Reference

profile
데이터와 이미지로 세상을 공부하는 중입니다 :)

0개의 댓글