Coding Test/초보자를 위한 파이썬 300제

[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(211~220)_12.21

Klay_J 2022. 12. 21. 16:09

안녕하세요. Harry입니다.

 

현재 풀이중인 초보자를 위한 파이썬 300제 풀이를 진행하면서 나름대로 파악했던 문제 출제 의도와 풀이를 작성했습니다.

모든 풀이는 직접 Pycharm을 통해 에러없이 출력됨을 확인 후 작성했습니다.

 

초보자를 위한 파이썬 300제 풀이는 Wikidocs에 무료로 배포된 전자책을 활용했습니다/

https://wikidocs.net/book/922

[학습목표]

1. 각 문제별 요구하는 역량(출제의도)이 무엇인지 파악할 수 있다.

2. 각 문제별 요구하는 기술 및 기능을 활용하여 문제를 해결할 수 있다.

211~ 220

211

함수의 호출 결과를 예측하라.

def 함수(문자열) :
    print(문자열)

함수("안녕")
함수("Hi")
 정답확인
안녕
Hi

212

함수의 호출 결과를 예측하라.

def 함수(a, b) :
    print(a + b)

함수(3, 4)
함수(7, 8)
 정답확인
7
15

213

아래와 같은 에러가 발생하는 원인을 설명하라.

def 함수(문자열) :
    print(문자열)
함수()
TypeError: 함수() missing 1 required positional argument: '문자열'
 정답확인
- 함수를 호출할 때 ()안에 문자열을 안 넣었기 때문

214

아래와 같은 에러가 발생하는 원인을 설명하라.

def 함수(a, b) :
    print(a + b)

함수("안녕", 3)
TypeError: must be str, not int
 정답확인
- 글자형과 정수형은 더할 수 없다.

215

하나의 문자를 입력받아 문자열 끝에 ":D" 스마일 문자열을 이어 붙여 출력하는 print_with_smile 함수를 정의하라.

- 요구역량 : 함수의 리턴값과 특정 문자열을 동시에 출력할 수 있는 함수를 정의할 수 있는가??

제가 문제를 잘못이해한 것 같습니다. 사용자에게 입력받아야하는 것으로 이해해서 input을 활용했는데, 그냥 출력하는 거였군요..

 정답확인
def print_with_smile():
    a = input()
    print(a,":D")
print_with_smile()

#답지
def print_with_smile (string) :
    print (string + ":D")
 

216

215에서 정의한 함수를 호출하라. 파라미터는 "안녕하세요"로 입력하라.

- 요구역량 : 함수의 리턴값과 특정 문자열을 동시에 출력할 수 있는가?

 

 정답확인
def print_with_smile (string) :
    print (string + ":D")
print_with_smile('안녕하세요'

217

현재 가격을 입력 받아 상한가 (30%)를 출력하는 print_upper_price 함수를 정의하라.

- 요구역량 : 함수의 매개변수값과 특정 값을 연산한 함수를 정의할 수 있는가?

또 제맘대로,,풀었습니다. 사용자에게 값을 받아서 그 값에 대한 상한가를 출력하도록 했는데, 여기서는 그냥 바로 price 매개변수를 입력하도록 했군요.

 

 정답확인
def print_upper_price():
    a = input("현재가격은?:")
    print(int(a)*1.3)
print_upper_price()

#답지
def print_upper_price(price) :
    print(price * 1.3)

218

두 개의 숫자를 입력받아 두 수의 합을 출력하는 print_sum 함수를 정의하라.

- 매개변수가 2개 이상인 함수를 정의할 수 있는가?

 

 정답확인
def print_sum(a,b):
    print(a+b)

219

두 개의 숫자를 입력받아 합/차/곱/나눗셈을 출력하는 print_arithmetic_operation 함수를 작성하라.

- 요구역량 : 함수의 수행명령이 여러개인 경우의 함수를 정의할 수 있는가?

print_arithmetic_operation(3, 4)
3 + 4 = 7
3 - 4 = -1
3 * 4 = 12
3 / 4 = 0.75
 정답확인
def print_arithmetic_operation(a,b):
    print(a, "+", b, "=", a + b)
    print(a, "-", b, "=", a - b)
    print(a, "*", b, "=", a * b)
    print(a, "/", b, "=", a / b)
print_arithmetic_operation(3,4)

220

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

- 요구역량 : 함수에서 if문의 조건에 따라 출력이 달라지는 함수를 정의하고 호출할 수 있는가?

저는 and 연산자를 통해 단순 비교를 했는데, 답지는 max_val 메서드를 활용했습니다. 

 정답확인
def print_max(a,b,c):
    if a > (b and c):
        print(a)
    elif b > (a and c):
        print(b)
    elif c > (a and b):
        print(c)
print_max(2,1,3)

#답지
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)

감사합니다.