Python / / 2022. 8. 31. 16:57

Python 기초 - 함수

# x값이 미정이므로 
a(3) #이런식으로 넣게 되면 a = 3x3 = 9가 출력된다.

함수는 여러줄의 코드를 짧게 할 수 있다.

 

예, p라는 함수를 만들고

def p():
    print('qㅁㄴㄻㄴㄻㄴㄹ')

p()만 치더라도 프린트문이 반환된다.

 

#두 수의 합과 곱을 반환하는 함수 실행
# x =double(9,10)
#print(x)
#결과: (19,90)

def double(a,b):
    return a+b,a*b

x = double(9,10)
print(x)
#반지름 입력시 원의 면적 구하기


def circle_area(radius):
    radius= int(input("원의 반지름을 입력하세요"))
    result = (radius**2) *3.14
    return print(f'반지름:{radius},%.2f'%result)
#입력값이 몇개인지 모를때,가변길이(알수없다.) 라는것을 명시적으로 표시

def adder(*args): 
    n = 0 
    for i in args: 
        n+=i
    return n
#여러 과목의 점수를 받아 평균 구하기 

def aver_(*params):
    count = len(params)
    n= 0 
    for i in params:
        n+=i
    return print(f'{count}과목의 평균:',n/count)
#키워드 파라미터 

def SingleA(**kwargs):
    print(kwargs)
#SingleA(10) #출력 X
SingleA(a=10) #딕셔너리 형태로 a:10으로 반환
SingleA(num=1,name='Kristina',age=30) #딕셔너리 형태로 반환

Q1. 실행결과가 아래와 같이 나오도록 작성

 

실행결과:
<class 'dict'>
Firstname is Dave
Lastname is Karim
Age is 32
Phone is 0103456789
#키워드 파라미터를 이용 아래 결과가 나오게 코드 작성하세요


def intro(**kwargs):
    print(type(kwargs)) #데이터 타입 출력
    for i,j in list(kwargs.items()): #키워드 파라미터를 이용하면 딕셔너리 형태로 반환되기 때문에 , list로 바꿔준후
        print(f'{i} is {j}') # 변수 두개를 지정해서 출력 되도록 한다

<lambda == 예약어 같은 느낌 함수와 비슷하다>

 

double = lambda a,b:a+b
y =double(1,2)

print(y) 

3

 

 

람다를 이용 데이터 1개 입력시 제곱값 출력

 

#람다 이용 데이터 1개 입력시 제곱값을 출력하기
x = lambda a:a**2

print(x(10)) = 100

print(x(5)) = 25

 

#세개의 인풋을 받아 연산 결과 반환
sum_ = lambda a,b,c:a+b+c
print(sum_(1,2,3))
def mul(n):
    return lambda x : x*n
a = mul(3) #mul(3)을 하면, a = x: 3*x가 된다.
mul(10)(3) # 이런식으로 하면 n에 10, x에 3을 대입 해서 30을 출력한다

지역변수 : 호출된 함수 내에서만 유효

전역변수 : 하위의 모든 함수에서 유효

 

def func(x): #x는 매개변수 즉, 지역변수 x에 어떤값을 넣더라도 x =100이다
    x=100
    print('func() : x= ',x,',id=',id(x))
x = 10 #x를 10으로 지정
print('메인:x = ',x,',id=',id(x))


출력: 

메인:x =  10 ,id= 140722204256336
func(x)# x를 10으로 지정했음에도, 함수안에 있는 x값은 바뀌지 않는다.

#출력:

func() : x=  100 ,id= 140722204259216
print('메인:x=',x,'id=',id(x)) #단, x=10으로 지정한건 전역변수이기 때문에 하위의 모든 함수에서 유효 하다.

출력: 
메인:x= 10 id= 140722204256336
#재귀 호출

def add(n):
    if n == 1: #n 이 1이라면, 리턴 1을 반환한다.
        return 1
    return n +add(n-1) # add(3)이라면 return n = 3이고, + add (n-1) 즉, add(2) n =2 + add 1이면 12반환 따라서 6
print(add(3))

출력:
6
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유