아자아자 화이팅이닷 !

230725 파이썬 공부 본문

TIL

230725 파이썬 공부

유초23 2023. 7. 25. 23:31
728x90

파이썬 300제 이어서 가보자고 ~

 

파이썬 300제에서 다시 보면 좋을 문제(~240) : 185(range함수 안쓰고도 쉽게 풀이 가능 !) , 186 , 189 , 191(수수료 계산하는거 한번 더 눈에 익히면 좋을듯 !) , 193 , 194 , 195 , 203(for문 쓰면 쉬움 !) , 204(for문 쓰면 쉬움 !) , 220 , 224 , 226 , 228 , 231 , 233 , 235(나는 split()함수를 썼지만, replace()함수를 쓰면 더 간단함 !)


+ 세 개의 숫자를 입력받아 가장 큰수를 출력하는 print_max 함수를 정의하라. 단 if 문을 사용해서 수를 비교하라.

 

답은 아래와 같다.

def print_max(a, b, c) :
    max_val = 0
    if a > max_val :
        max_val = a
    if b > max_val :
        max_val = b
    if c > max_val :
        max_val = c
    print(max_val)

 

근데 나는 max_val이 왜 필요한지, 왜 max_val과 비교를 하는지 잘 모르겠어서 스터디장님께 도움을 청했다 ㅠ

일단 a,b,c가 다 양수라는 가정하에 max_val과 나머지 값을 비교하는 로직이라고 생각하면 된다.

예를 들어 첫번째 if에서 max_val이 a > b and a > c 를 담고 있다고 생각하면 이해가 쉽다.

max_val은 매개변수로, a b c 변수와 간접비교를 하는데에 사용한다고 생각하면 이해가 쉽다 !


+ 연봉을 입력받아 월급을 계산하는 calc_monthly_salary(annual_salary) 함수를 정의하라. 회사는 연봉을 12개월로 나누어 분할 지급하며, 이 때 1원 미만은 버림한다.

 

답은 아래와 같다.

def calc_monthly_salary(annual_pay) :
    monthly_pay = int(annual_pay / 12)
    return monthly_pay

 

여기에서 1원 절사를 할 때 형변환을 해서 1원 미만을 절사한다는것을 알았다 !


+ 아래 코드를 실행한 결과를 예상하라.

def n_plus_1 (n) :
    result = n + 1

n_plus_1(3)
print (result)

 

>> 결과

NameError Traceback (most recent call last)
<ipython-input-2-78e20c8ecef0> in <module>()
3 
4 n_plus_1(3)
----> 5 print (result)
6

NameError: name 'result' is not defined

에러가 발생한다. 함수 내부에서 사용한 변수는 함수 밖에서는 접근이 불가능하다. 함수 내부에서 계산한 값을 전달하기 위해서는 return을 사용해야 한다고 한다 !


+ return()함수와 print()함수의 차이

(1) print는 출력 값을 보여주는 기능이며, 출력 값 생성을 위해 함수를 호출하게 된다.

(2) return은 정의된 함수에 대한 호출이 있을 때 값을 반환시켜주는 기능이다.

(2) 모든 함수는 어떤 값을 return 해야한다. 이때 함수 내에 반환값인 return이 정의되지 않은 경우 None을 결과 값으로 뱉어내게 된다.

 

 

728x90

'TIL' 카테고리의 다른 글

230727 프로그래머스 문제풀기  (0) 2023.07.27
230726 파이썬 공부  (0) 2023.07.27
230724 파이썬 코딩 공부  (0) 2023.07.25
230723 파이썬 코딩 공부  (0) 2023.07.23
230722 오프라인 스터디 & 파이썬 코딩 공부  (0) 2023.07.23