Python

python function

brian110326 2024. 5. 15. 01:02

# 함수
# def 함수명(매개변수):
#     수행할문장1
#     수행할문장2


# %%
def hello():
    print("Hello!@")


hello()


# %%
def add(a, b):
    return a + b


add(4, 5)


# %%
# 기본값 부여 : 값이 넘어오지 않는 경우 사용
def sub(a, b=3):
    return a - b


print(sub(9, 5))
print(sub(9))


# %%
# 가변 : 입력값이 몇개가 될지 모르는 경우 사용
#        입력값을 모아서 tuple로 만들어줌
def add_many(*args):
    print(args)


add_many(1, 2, 3)
add_many(1, 2, 3, 4, 5, 6, 7)
add_many("35", "24", "45", "99")
add_many({"dessert": "macaroon", "wine": "marlot"})


# %%
def add_many(*args):
    result = 0
    for i in args:
        result += i
    return result


print(add_many(1, 2, 3))
print(add_many(1, 2, 3, 4, 5, 6, 7, 8, 9))


# %%
# 가변 parameter와 일반 parameter를 같이 쓸때 가변 parameter를 맨 뒤에 선언
def add_many(choice, *args):
    if choice == "add":
        result = 0
        for i in args:
            result += i

    elif choice == "mul":
        result = 1
        for i in args:
            result *= i

    return result


print(add_many("add", 1, 2, 3))
print(add_many("mul", 1, 2, 3, 4, 5, 6, 7))


# %%
# keyword parameter : kwargs
# : 입력값을 모아서 dictionary로 만들어줌
def print_kwargs(**kwargs):
    print(kwargs)


print_kwargs(name="foo", age=3)
print_kwargs(name="foo", age=3, addr="seoul")


# %%
# 일반, 가변, 키워드 다 섞이는 경우
def print_kwargs(arg1, arg2, *args, **kwargs):
    print(arg1, arg2, args, kwargs)


print_kwargs(1, 2)
print_kwargs(1, 2, "park", "kim")
print_kwargs(1, 2, "park", "kim", age=25, name="choi")


# %%
# 함수의 return값 : 여러개일 경우 묶어서 tuple로 return
def add_and_mul(a, b):
    return a + b, a * b


print(add_and_mul(3, 4))

hap, mul = add_and_mul(5, 6)
print(hap, mul)


# %%
def func_mul(x):
    y1 = x * 100
    y2 = x * 200
    y3 = x * 300
    return [y1, y2, y3]


print(func_mul(100))


# %%
def say_nick(nick):
    if nick == "바보":
        return
    print(f"나의 별명은 {nick}입니다")


say_nick("바보")
say_nick("a")


# %%
def four_rules(a, b, op):
    if op == "+":
        result = a + b
    elif op == "-":
        result = a - b
    elif op == "*":
        result = a * b
    elif op == "/":
        result = a / b
    return result


num1 = int(input("숫자1 입력: "))
num2 = int(input("숫자2 입력: "))
op = input("연산자 입력 : ")
print(four_rules(num1, num2, op))


# %%
a = 1


def vartest(a):
    a = a + 1


vartest(a)
print(a)

# %%
a = 1


def vartest(a):
    a = a + 1
    return a


a = vartest(a)
print(a)

# %%
a = 1


def vartest():
    global a
    a = a + 1
    return a


vartest()
print(a)


# %%
# 1~100 소수에 해당하는 숫자
# 2,3,5,7,11,13...
primes = []


def isPrime(x):
    cnt = 0
    for i in range(1, x + 1):
        if x % i == 0:
            cnt += 1
    if cnt == 2:
        primes.append(x)


for j in range(1, 101):
    isPrime(j)
print(primes)

# %%

'Python' 카테고리의 다른 글

Excel 연동  (0) 2024.05.20
list comprehension  (0) 2024.05.15
Set  (0) 2024.05.15
dictionary  (0) 2024.05.13
tuple  (0) 2024.05.13