해당 포스팅은 코드잇 복습을 위한 포스팅입니다.
문제 발생 시 즉시 비공개 처리 하겠습니다.
실습 1
함수 sum_digit은 파라미터로 정수형 num을 받고, num의 각 자릿수를 더한 값을 리턴한다.
예를 들어, 12의 각 자릿수는 1, 2이니까 sum_digit(12)는 3, 즉 1 + 2의 결괏값을 리턴한다.
마찬가지로 486의 각 자릿수는 4, 8, 6이니까 sum_digit(486)은 18(4 + 8 + 6)을 리턴하는 것이다.
1. sum_digit 함수 작성
2. sum_digit(1)부터 sum_digit(1000)까지의 합을 구해서 출력
실행결과
내 코드
def sum_digit(num): #넘버를 인덱스로 가진 "자릿수합 함수" 정의
total = 0 #토탈이라는 변수를 0으로 정의
str_num = str(num) #'자릿수합 함수'의 인덱스는 '문자열'이다. 이름은 str_num
for digit in str_num: #str_num 속 문자열 "숫자", 예를들어서 2와 3인 '숫자'들을 순서대로 불러오면
total += int(digit) #토탈 변수 0에 숫자열로 바꾼 '숫자'를 더한다. 그래서 2 + 3이 된다.
return total #반복이 끝나면 토탈을 리턴한다.
i = 0 #i는 0이다
digit_total = 0 #digit_total도 0이다.
for i in range(1, 1001): #i가 1000번을 가는 동안
digit_total += sum_digit(i) #digit_total에 "자릿수합 함수"값을 더한다.
print(digit_total)
#실행결과
13501
모범답안
실습 2
주민등록번호 YYMMDD-abcdefg는 총 열세 자리이다.
앞의 여섯 자리 YYMMDD는 생년월일을 의미한다.
YY = 연
MM = 월
DD = 일
뒤의 일곱자리 abcdefg
a = 성별
bc = 출생등록지에 해당하는 지방자치단체의 고유번호
defg = 임의의 번호
주민등록번호의 마지막 네 자리 defg만 가려 주는 보안 프로그램을 만들려고 한다.
mask_security_number이라는 함수를 정의해야한다. 이 함수는 파라미터로 문자열 security_number를 받고, security_number의 마지막 네 글자를 '*'로 대체한 새 문자열을 리턴한다.
참고로 파라미터 security_number에는 작대기 기호(-)가 포함될 수도 있고, 포함되지 않을 수도 있다.
작대기 포함 여부와 상관 없이, 마지막 네 글자가 '*'로 대체되어야 한다.
실행결과
내 코드
def mask_security_number(security_number):
str_sec = str(security_number)
pre_sec = str(security_number[:10])
pre_sec_2 = str(security_number[:9])
stars = "****"
if len(security_number) == 14:
result_sec = pre_sec + stars
else:
result_sec = pre_sec_2 + stars
return result_sec
print(mask_security_number("880720-1234567"))
print(mask_security_number("8807201234567"))
print(mask_security_number("930124-7654321"))
print(mask_security_number("9301247654321"))
print(mask_security_number("761214-2357111"))
print(mask_security_number("7612142357111"))
#실행결과
880720-123****
880720123****
930124-765****
930124765****
761214-235****
761214235****
모범답안
실습 3
"토마토"나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 '팰린드롬(palindrome)'이라고 부른다.
펠린드롬 여부를 확인하는 함수 is_palindrome을 작성해야 한다. is_palindrome은 파라미터 word가 팰린드롬이면 True를 리턴하고 팰린드롬이 아니면 False를 리턴한다.
예를 들어, "racecar"과 "토마토"는 거꾸로 읽어도 똑같기 때문에 True가 출력되어야 한다. 그리고 "hello"는 거꾸로 읽으면 "olleh"가 되기 때문에 False가 나와야 한다.
실행결과
내 코드
def is_palindrome(word):
list_word = list(word)
list_word.reverse()
reversed_word = "".join(list_word)
return word == reversed_word
print(is_palindrome("racecar"))
print(is_palindrome("stars"))
print(is_palindrome("토마토"))
print(is_palindrome("kayak"))
print(is_palindrome("hello"))
#실행결과
True
False
True
True
False
모범답안
'파이썬 > 코드잇' 카테고리의 다른 글
Python 49. 리스트와 문자열 복습 [2] with 코드잇 (0) | 2023.04.15 |
---|---|
Python 48. 리스트와 문자열 복습 [1] with 코드잇 (0) | 2023.04.15 |
Python 47. Aliasing 복습 with 코드잇 (0) | 2023.04.15 |
Python 46. 사전 (dictionary) 실습 with 코드잇 (0) | 2023.04.15 |
Python 45. 사전 (dictionary) 활용법 복습 with 코드잇 (0) | 2023.04.15 |