[Zerobase][Python Mid] 함수 문제풀이

솔비·2023년 11월 27일
0

💻 Python. w/zerobase

목록 보기
7/33
post-thumbnail

함수 문제풀이

📖 1번문제

덧셈, 뺄셈, 나눗셈, 곱셈, 나머지, 값, 거듭제곱을 구하는 calculator 함수를 만들어보자

def calculator(n1,n2,operator) :

    def add() :
        return n1 + n2
    def sub() :
        return n1 - n2
    def div() :
        return n1 / n2
    def mul() :
        return n1 * n2
    def mod() :
        return n1 % n2
    def flo() :
        return n1 // n2
    def exp() :
        return n1 ** n2

    if operator == 1 :
        print(add())
    elif operator == 2 :
        print(sub())
    elif operator == 3:
        print(div())
    elif operator == 4:
        print(mul())
    elif operator == 5:
        print(mod())
    elif operator == 6:
        print(flo())
    elif operator == 7:
        print(exp())


while True :
    n1 = int(input('n1입력 : '))
    n2 = int(input('n2입력 : '))
    select = int(input('1.덧셈 2.뺄셈 3.나눗셈 4.곱셈 5.나머지 6.값 7.거듭제곱 8.종료 : '))
    if select == 8 :
        break

    calculator(n1,n2,select)

📋추가기록

calculator 함수의 if문에 print를 사용하고싶지 않다면, return으로 코드 작성해주고
while에서 함수 호출할 때
print(calculator(n1,n2,select)) 해주면 된다.


📖 초보자를 위한 300예제

출처 : https://wikidocs.net/23906

220

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

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

    if b > max :
        max = b

    if c > max :
        max = c

    print(max)

📋추가기록

나같은 경우 if a>b and a>c처럼 하나하나 비교했으나,
max라는 변수를 하나 두고
변수보다 작다면 max에 값을 할당애 주는 방식으로 하면 더 간결해진다.


221

입력된 문자열을 역순으로 출력하는 print_reverse 함수를 정의하라.

def print_reverse (str) :
    print(str[::-1])

📋추가기록

슬라이싱에 대한 지식은 있었으나 아예 뒤집는데 쓸거라곤 생각지도 못했다 😅
str[ : :-1] : 처음부터 끝까지 뒤에서 하나씩


224

하나의 딕셔너리를 입력받아 딕셔너리의 key 값을 화면에 출력하는 print_keys 함수를 정의하라.

def print_keys (dic) :
    for i in dic.keys() :
        print(i)

📋추가기록

이터러블한 객체는 모두 올 수 있다.
풀 때 def print_keys (*dic)로 넣었는데,
별은 튜플이므로 dic.key()가 코딩되지 않았다.
그냥 딕셔너리 그 자체를 넣으면 된다.


227

문자열과 한줄에 출력될 글자 수를 입력을 받아
한 줄에 입력된 글자 수만큼 출력하는 print_mxn(string) 함수를 작성하라.

def print_mxn(string,n) :
    check_num = int(len(string) / n)
    for i in range(check_num+1):
        print(string[i*n : i*n+3])

print_mxn("아이엠어보이유알어걸", 3)

📋추가기록

우선 check_num 변수는 개행 수 이다.
문장의 수에서 한줄에 들어갈 글자 수를 나눈 값을 for문에 넣는데
여기서, +1을 해주는 이유는 int로 소수점을 잘라냈기때문.


228

아래 실행결과를 예측하라

def my_print (a, b) :
    print("왼쪽:", a)
    print("오른쪽:", b)

my_print(a=100, b=200)

🌟 해답기록

위의 my_print(a=100, b=200)s는
a에 100, b에 200을 바인딩하라는 것을 명시적으로 표현한 코드
아래 코드는 문법만 다를 뿐 위 코드와 동일한 동작을 수행한다.

#답은 

왼쪽: 100
오른쪽: 200

🌟 매개변수 디폴트값

def my_print (a=100, b=200) :
    print("왼쪽:", a)
    print("오른쪽:", b)

my_print()

위에처럼 매개변수에 디폴트값을 넣어주면
함수 실행 시 인수를 넣지 않아도 된다.

만약, 매개변수가 여러개이고 디폴트가 하나일 경우에는 뒤쪽에 디폴트 값을 몰아줘야한다.

def my_print (a, b=200) :
    print("왼쪽:", a)
    print("오른쪽:", b)

my_print(100)

235

콤마가 포함된 문자열 숫자를 입력받아 정수로 변환하는 convert_int 함수를 정의하라.

def convert_int(num) :
    return int(num.replace(',',''))

print(convert_int("1,234,567"))

🌟 replace

replace는 문자열을 변경하는 함수이다.
문자열 안에서 특정 문자를 새로운 문자로 변경하는 기능을 가지고 있다.
'변수. replace(old, new, [count])' 형식으로 사용한다.

  • old : 현재 문자열에서 변경하고 싶은 문자
  • new: 새로 바꿀 문자
  • count: 변경할 횟수. 횟수는 입력하지 않으면 old의 문자열 전체를 변경한다. 기본값은 전체를 의미하는 count=-1로 지정되어있다.

제로베이스 데이터취업스쿨
Daily Study Note
초보자를 위한 300예제 : https://wikidocs.net/23906
profile
Study Log

0개의 댓글