예를들어 다음과 같은 함수의 파라미터로 음수가 들어올 수도 있으며,
음수가 들어올 경우에 무조건 0처리를 해야한다고 가정해보자
def calculate_insurance(car_size, days_of_nums):
if days_of_nums <= 0:
return 0
else:
return (carsize + 50) * days_of_nums
이런식으로 단순하게 조건문 처리를 해도 되지만 다음과 같이 max를 활용해서 더 짧게 코드를 작성할 수 있다.
def calculate_insurance(car_size, days_of_nums):
return (carsize + 50) * max(0, days_of_nums)
마찬가지로 계산식을 좀더 간결하게 쓸때 활용가능하다.
예를 들어 위의 보험료계산 함수에 나이요소를 넣어서 나이가 25세 미만이면 기본료 50에 10씩을 덧붙여서 계산이 되어야 한다고 생각해보자
def calculate_insurance(car_size, age, days_of_nums):
basic_fee = 50
if age < 25:
basic_fee += 10
return (carsize + basic_fee) * max(0, days_of_nums)
위의 코드처럼 간단하게 조건문으로 처리를 해도 되지만
def calculate_insurance(car_size, age, days_of_nums):
return (carsize + 10*(age<25) + 50) * max(0, days_of_nums)
이런식으로 True = 1 False = 0 이라는 이진개념을 활용하면 더욱 간결하게 코드를 작성할 수 있다.
import re
string = "The30quick20brown10f0x1203jumps914ov3r1349the102l4zy dog"
numbers = re.findall(r'\d+', string)
print(numbers)
결과 : ['30', '20', '10', '0', '1203', '914', '3', '1349', '102', '4']
refindall을 사용하면 간단하게 정규식에 맞춘 문자열을 이렇게 간단하게 리스트에 담아서 반환해준다. 문자 사이에 있는 숫자를 찾아내어 계산을 해야하는 알고리즘 코드를 짤 때 매우 편리하다.