Python基礎文法8
9.Function(関数)
同じコードを2回以上使用した場合の関数です.
9.1作成機能
#예시
def add(a, b): ## def 지정 function 이름 "add" 생성 param. a, b 생성
c = a + b ## statement 생성
return c ## global에 작업
print(c) ## 이경우 global 엔 영향이 없다.
# function 실행하기
add(3, 5)
# 사칙연산
def add(a, b):
return(a+b)
def sub(a, b):
return a - b
def mul(a, b):
c = 0
while b > 0:
c = c + a
b = b - 1
return c
def dev(a, b):
if b == 0:
return 0 ## 0으로 나눌경우 error가 뜬다.
else: ##따라서 function을 만들때 대부분 숫자 나누기 0은 0으로 표시되게한다
return a / b
a = 10
b = 0
print("Add", add(a, b))
print("Sub", sub(a, b))
print("Mul", mul(a, b))
print("Dev", dev(a, b))
9.2豊富な機能
9.2.1 Paramator and Returnがある場合
def add (a, b):
return a + b
9.2.2 Paramatorがなく収益がある場合
def get_data():
data = pd.read_csv("test.csv") ## 특정 작업이 지정되어 있을 경우 parameter 가 필요 없다.
return data ## 이경우 function 을 사용하면 데이터만 리턴한다.
9.2.3アマチュアがいて、報われないとき
a = 3
b = 4
c = 0
def add(a, b):
c = a + b ## function안(local) 에서만 작동한다
print(c) ## return 이 아닌 print로 값만 출력한다.
add(3, 4)
print(c) ## global에서는 변하지 않는다.
def print_name(name):
print(name) ## name만 프린트 하고 더이상 작업이 없을때
def save_data(path, data):
dta.to_csv(path) ## 특정 작업을 시행하고 끝낼경우
### 9.2.4 parameter 와 return 이 없을때
def say_hi():
print("Hi") ## 단순한 업무를 진행할 경우
say_hi()
def save_txt():
with open("test.txt", 'w') as f:
f.write(txt) ## 특정 작업을 실행하고 끝인경우
## global엔 변화없음
9.3関数に入力したパラメータの個数が分からない場合
def add_many(*params): ## *를 붙임으로 parameter의 계수가 여러개임을 입력한다.
total = 0
for num in params:
total += num
return total
add_many(1, 2, 3, 4, 5)
9.4パラメータの作成障害
def add_as_many(*numbers, b=100):
total = 0
for num in numbers:
total = total + num
total = total + b
return total
add_as_many(1, 2, 3, 4, 5, 6) ## *numbers에 1~6입력 b = 100 defult
add_as_many(1, 2, 3, 4, 5, 6, b=500) ## b에 새로운 값을 넣을 수 있다.
9.5パラメータ:LocalとGlobal
# 함수 parameter와 Global의 variable의 이름이 같을 경우
def change_name(name):
name = "Doh" ##local에서 이름을 바꾼다
return name
name = "Kim"
name = change_name(name) ## name을 update한다.
print(name)
# 함수 parameter와 Global의 variable의 이름이 같을 경우
def change_name(name):
name = "Doh" ##local에서 이름을 바꾼다
print("Name is the function: %s" % name)
name = "Kim"
name = change_name(name)
print(name) ## Local 에서만 바뀌었고 Global에선 바뀌지 않는다.
10. Lambda Function
Lambda Expresion
def add(a,b):
return a + b
# In lambda
f = lambda a, b : a+b
print(add(1, 3))
print(f(1, 3))
Reference
この問題について(Python基礎文法8), 我々は、より多くの情報をここで見つけました https://velog.io/@dohy426/파이썬-기초문법-8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol