안녕하세요. Harry입니다.
현재 풀이중인 초보자를 위한 파이썬 300제 풀이를 진행하면서 나름대로 파악했던 문제 출제 의도와 풀이를 작성했습니다.
모든 풀이는 직접 Pycharm을 통해 에러없이 출력됨을 확인 후 작성했습니다.
초보자를 위한 파이썬 300제 풀이는 Wikidocs에 무료로 배포된 전자책을 활용했습니다/
[학습목표]
1. 각 문제별 요구하는 역량(출제의도)이 무엇인지 파악할 수 있다.
2. 각 문제별 요구하는 기술 및 기능을 활용하여 문제를 해결할 수 있다.
221 ~ 230
221
입력된 문자열을 역순으로 출력하는 print_reverse 함수를 정의하라.
- 요구역량 : 특정 기능을 보유한 함수를 정의할 수 있는가?
print_reverse("python")
nohtyp
정답확인def print_reverse(string):
a = string[::-1]
print(a)
print_reverse('python')
222
성적 리스트를 입력 받아 평균을 출력하는 print_score 함수를 정의하라.
- 요구역량 : 리스트를 매개변수로 입력받을 때, 리스트 요소의 합,요소 개수를 이용한 연산값을 출력하는 함수를 정의할 수 있는가?
생각보다 오래 걸렸습니다,,어떻게 풀어야겠다는 생각이 나는데, sum(List)가 생각이 안나서 계속 헤맸네요,,
print_score ([1, 2, 3])
2.0
정답확인def print_score(list):
for i in list:
a = sum(list)/len(list)
print(a)
223
하나의 리스트를 입력받아 짝수만 화면에 출력하는 print_even 함수를 정의하라.
- 요구역량 : 함수 정의 시 for문 및 if문을 활용하여 특정조건에 맞는 리스트 요소만 출력할 수 있는가?
print_even ([1, 3, 2, 10, 12, 11, 15])
2
10
12
정답확인def print_even(list):
for i in list:
if i%2 == 0:
print(i)
224
하나의 딕셔너리를 입력받아 딕셔너리의 key 값을 화면에 출력하는 print_keys 함수를 정의하라.
- 함수에서 for문을 활용하여 딕셔너리 키값만 따로 추출하는 함수를 정의할 수 있는가?
print(dic.keys())를 출력하도록 했더니 답지처럼 출력되진 않았다,, 아직 딕셔너리쪽이 어색한 듯 합니다.
dic.keys() 자체를 for문에 활용하는 것을 기억할 것!
print_keys ({"이름":"김말똥", "나이":30, "성별":0})
이름
나이
성별
정답확인def print_keys(dic):
for keys in dic.keys():
print(keys)
225
my_dict에는 날짜를 키값으로 OHLC가 리스트로 저장돼 있다.
- 요구역량 : 딕셔너리가 포함된 함수에서 특정 key값을 입력받으면 대응되는 value를 출력하는 함수를 정의할 수 있는가?
어떻게든 풀긴 푸는데,, 더 간편한 방법으로 풀지는 못하고 있습니다.딕셔너리[key값] => value값이 나온다는 걸 숙지할 필요가 있습니다.
my_dict = {"10/26" : [100, 130, 100, 100],
"10/27" : [10, 12, 10, 11]}
my_dict와 날짜 키값을 입력받아 OHLC 리스트를 출력하는 print_value_by_key 함수를 정의하라.
print_value_by_key (my_dict, "10/26")
[100, 130, 100, 100]
정답확인
my_dict = {"10/26" : [100, 130, 100, 100],
"10/27" : [10, 12, 10, 11]}
def print_value_by_key(my_dict,a):
for i in my_dict.keys():
if i == a:
print(my_dict[a])
#답지
def print_value_by_key (my_dict, key) :
print(my_dict[key])
226
입력 문자열을 한 줄에 다섯글자씩 출력하는 print_5xn(string) 함수를 작성하라.
- 요구역량 : 문자열을 특정 개수로 구분 후, 각각 다른 줄에 위치하도록 출력하는 함수를 정의할 수 있는가?
이걸,,어떻게 생각해내지,,? 가장 당황스러운 문제입니다..요구는 간단하지만 구현하는 식은 생각할 게 많아보이는 군요,,
일단 range의 범위도 생각해야하고, 문자열을 슬라이싱하는 인덱스 값도 계산해야합니다..
print_5xn("아이엠어보이유알어걸")
아이엠어보
이유알어걸
정답확인#답지
def print_5xn(line):
chunk_num = int(len(line) / 5)
for x in range(chunk_num + 1) :
print(line[x * 5: x * 5 + 5])
print_5xn("아이엠어보이유알어걸")
227
문자열과 한줄에 출력될 글자 수를 입력을 받아 한 줄에 입력된 글자 수만큼 출력하는 print_mxn(string) 함수를 작성하라.
- 요구역량 : 문자열을 특정 개수로 구분 후, 각각 다른 줄에 위치하도록 출력하는 함수를 정의할 수 있는가?
printmxn("아이엠어보이유알어걸", 3)
아이엠
어보이
유알어
걸
정답확인#답지
def print_mxn(line, num):
chunk_num = int(len(line) / num)
for x in range(chunk_num + 1) :
print(line[x * num: x * num + num])
228
연봉을 입력받아 월급을 계산하는 calc_monthly_salary(annual_salary) 함수를 정의하라. 회사는 연봉을 12개월로 나누어 분할 지급하며, 이 때 1원 미만은 버림한다.
- 요구역량 : 함수의 return 값을 정의하여 함수를 호출할 수 있는가?
답지에서는 int로 값을 씌워서 출력했네요. 1원 미만은 버림한다를 정수형으로 변경하여 처리하는 듯 합니다.
저의 답의 경우는 실수형으로 나오기 때문에, 저도 int를 씌워줬구요.
return을 쓰지않은 게 차이점이네요.
calc_monthly_salary(12000000)
1000000
정답확인def calc_monthly_salary(annual_pay) :
print(int(annual_pay/12))
#답지
def calc_monthly_salary(annual_pay) :
monthly_pay = int(annual_pay / 12)
return monthly_pay
229
아래 코드의 실행 결과를 예측하라.
- 요구역량 : 함수의 매개변수가 바인딩된 명령어를 이해하고 있는가?
def my_print (a, b) :
print("왼쪽:", a)
print("오른쪽:", b)
my_print(a=100, b=200)
정답확인오른쪽 : 200
매개변수를 바인딩해도 동일하게 동작.
230
아래 코드의 실행 결과를 예측하라.
- 요구역량 : 함수의 매개변수가 바인딩된 명령어를 이해하고 있는가?
def my_print (a, b) :
print("왼쪽:", a)
print("오른쪽:", b)
my_print(b=100, a=200)
정답확인오른쪽 : 200
감사합니다.
'Coding Test > 초보자를 위한 파이썬 300제' 카테고리의 다른 글
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(241~250)_12.22 (0) | 2022.12.22 |
---|---|
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(231~240)_12.21 (0) | 2022.12.21 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(211~220)_12.21 (0) | 2022.12.21 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(201~210)_12.21 (0) | 2022.12.21 |
[독학 파이썬] 초보자를 위한 파이썬 300제 풀이(191~200)_12.20 (0) | 2022.12.20 |