def 함수명([매개변수[=초기값], .....]): 수행할 문장1 수행할 문장2 .... .... .... return [결과값]
함수 사용의 예
def Seperator(): print("-"*10)def MyPrint(data): print(f"결과 값은 {data} 입니다")MyPrint(1234) Seperator()출력 - 결과 값은 1234 입니다MyPrint("Hello") Seperator()출력 - 결과 값은 Hello 입니다Myprint(3.14)출력 - 결과 값은 3.14 입니다
문장에서 hide_name_list에 포함된 이름을 **로 바꿔주는 함수
def HideNames(text, hide_name_list): for hide_name in hide_name_list: text = text.replace(hide_name, "**") return textarticle1 = """ 트럼프는 이날 오후 가수 리 그린우드의 ‘갓 블레스 USA’ 노래에 맞춰 객석에서 무대로 걸어 내려왔다. “우리가 이겼다”는 말로 연설을 시작했다. 트럼프는 “지난 4년 간의 내리막길이 마무리되고 미국의 자존심과 위엄, 힘을 되찾을 것”이라며 “불법 이민자에 의한 국경 침범을 멈추고 도시의 잃어버린 법과 질서를 되찾을 것”이라고 했다. “좌파의 ‘워크(woke·깨어 있음)’ 이데올로기를 우리 정부와 군에서 없애 미국을 다시 위대하게 만들 것”이라고도 했다. 트럼프는 이날 피트 헤그세스 국방장관, 털시 개버드 국가정보국(DNI) 국장, 로버트 F. 케네디 주니어 보건복지부 장관 등 의회 인준 과정에서 논란에 휘말린 후보자들을 일일이 호명하며 힘을 실어줬다. """article2 = """ 4년 전인 2021년 조 바이든 대통령의 취임식과 특별 공연에서는 코로나 팬데믹 상황에서도 레이디 가가, 제니퍼 로페즈, 저스틴 팀버레이크 등 톱스타들이 축하 공연을 했다. 첫 흑인 미 대통령으로 세계의 관심이 집중됐던 2009년 버락 오바마 대통령의 1기 취임식에서도 비욘세, U2, 스티비 원더 등 당대 최고 가수들이 총출동했다. 전반적으로 유색인종 비율이 높았고 음악 장르도 록, 리듬앤블루스, 라틴 팝 등으로 다양했다 """masked_article1 = HideNames(article1, ["리 그린우드", "피트 헤그세스", "털시 개버드", "로버트 F. 케네디 주니어"]) print(masked_article1)출력 : 트럼프는 이날 오후 가수 **의 ‘갓 블레스 USA’ 노래에 맞춰 객석에서 무대로 걸어 내려왔다. “우리가 이겼다”는 말로 연설을 시작했다. 트럼프는 “지난 4년 간의 내리막길이 마무리되고 미국의 자존심과 위엄, 힘을 되찾을 것”이라며 “불법 이민자에 의한 국경 침범을 멈추고 도시의 잃어버린 법과 질서를 되찾을 것”이라고 했다. “좌파의 ‘워크(woke·깨어 있음)’ 이데올로기를 우리 정부와 군에서 없애 미국을 다시 위대하게 만들 것”이라고도 했다. 트럼프는 이날 ** 국방장관, **국가정보국(DNI) 국장, ** 보건복지부 장관 등 의회 인준 과정에서 논란에 휘말린 후보자들을 일일이 호명하며 힘을 실어줬다.masked_article2 = HideNames(article2, ["레이디 가가", "제니퍼 로페즈", "저스틴 팀버레이크"]) print(masked_article2)출력 : 4년 전인 2021년 조 바이든 대통령의 취임식과 특별 공연에서는 코로나 팬데믹 상황에서도 **, **, ** 등 톱스타들이 축하 공연을 했다. 첫 흑인 미 대통령으로 세계의 관심이 집중됐던 2009년 버락 오바마 대통령의 1기 취임식에서도 비욘세, U2, 스티비 원더 등 당대 최고 가수들이 총출동했다. 전반적으로 유색인종 비율이 높았고 음악 장르도 록, 리듬앤블루스, 라틴 팝 등으로 다양했다
return 값이 있는 함수 예 2
함수가 자기스스로를 부르는 것을 재귀함수라고 한다def factorial(n): if n == 0: return 1 else: return n * factorial(n-1)print("5! =",factorial(5)) print("10! =", factorial(10))출력 : 5! = 120 출력 : 10! = 3628800
여러 return 값이 있는 함수 예
def LargestSmallest(data): largest = data[0] smallest = data[0] for i in data: if i > largest: largest = i elif i < smallest: smallest = i return largest, smallestlargest, smallest = LargestSmallest([1818,0,-838,388,47,382,0,3849]) print("Largest:", largest) print("Smallest:", smallest) print("-"*10)result = LargestSmallest([1818,0,-838,388,47,382,0,3849]) print("Largest:", result[0]) print("Smallest:", result[1])위에서
return largest, smallest는 다음과 같이 해도 된다.
return [largest, smallest]또는
return (largest, smallest)출력 : Largest: 3849 출력 : Smallest: -838 출력 : ---------- 출력 : Largest: 3849 출력 : Smallest: -838
함수를 호출할 때 매개변수를 지정할 수 있다.
def div(a, b): floor_result = a // b remainder = a % b return floor_result, remainder
- 이 함수는를 호출 할때 다음과 같이 매개변수를 지정하여 사용할 수 있다.
>> result, remainder = div(a=20, b=3) >> print(result, remainder) 6 2
- 순서에 상관 없이 매개변수를 사용할 수 있다.
>> result = div(b=3, a=30) # b에 3, a에 20을 전달 >> print(result) -2
def div(a, b): floor_result = a // b remainder = a % b return floor_result, remainder호출 방법 1
result, remainder = div(20, 3) print(result, remainder)출력 : 6 2호출 방법 2
result, remainder = div(a=20, b=3) print(result, remainder)출력 : 6 2호출 방법 3
result, remainder = div(b=3, a=20) print(result, remainder)출력 : 6 2
매개변수에 default 값 할당하기 예 1
def greet(name=None, message="안녕하세요"): if name == None: return f"{message}!" else: return f"{message}, {name}님!"함수 호출
print(greet()) print(greet("홍길동")) print(greet("홍길동", "잘 지내셨어요")) print(greet(message="반갑습니다")) print(greet(name="홍길동")) print(greet("홍길동", message="반갑습니다")) print(greet(name="홍길동", message="오랫만이네요")) print(greet(message="오랫만이네요", name="홍길동"))출력 : 안녕하세요! 출력 : 안녕하세요, 홍길동님! 출력 : 잘 지내셨어요, 홍길동님! 출력 : 반갑습니다! 출력 : 안녕하세요, 홍길동님! 출력 : 반갑습니다, 홍길동님! 출력 : 오랫만이네요, 홍길동님! 출력 : 오랫만이네요, 홍길동님!로그 찍기
def log_message(message, level="INFO"): print(f"[{level}] {message}")함수 호출
log_message("System started") # 출력: [INFO] System started log_message("Disk space low", "WARNING") # 출력: [WARNING] Disk space low출력 : [INFO] System started 출력 : [WARNING] Disk space low
여러개의 값을 입력 값으로 받을 수 있다
def add_numbers(*args): result = 0 for num in args: result += num return result함수 호출
print(add_numbers(1, 2, 3, 4, 5)) print(add_numbers(10, 20, 30)) print(add_numbers())출력 : 15 출력 : 60 출력 : 0
여러개의 입력 값을 받는 함수의 입력값 type
def print_args(*args): print(type(args), args)함수 호출
print_args() print_args(1, 2, 3, 4, 5)출력 : <class 'tuple'> () 출력 : <class 'tuple'> (1, 2, 3, 4, 5)
정해지지 않은 입력값을 키워드로 받기
def print_kargs(**kargs): print(type(kargs), kargs)함수 호출
print_kargs() print_kargs(name="홍길동", age=30, city="서울")출력 : <class 'dict'> {} 출력 : <class 'dict'> {'name': '홍길동', 'age': 30, 'city': '서울'}
def log_event(event, **kwargs): print(f"Event: {event}") for key, value in kwargs.items(): print(f" {key}: {value}")함수 호출
log_event("User Login", username="john_doe", ip="192.168.1.1", status="success") log_event("User", username="john_doe", ip="192.168.1.1", status="success")출력 - Event: User Login 출력 - username: john_doe 출력 - ip: 192.168.1.1 출력 - status: success 출력 - Event: User 출력 - username: john_doe 출력 - ip: 192.168.1.1 출력 - status: success