이름의 각 단어는 이니셜(첫 글자 대문자)로 줄이고, 성만은 원래 형태 그대로 출력하는 프로그램을 파이썬으로 만들어 보겠습니다. 이 과정에서는 파이썬이 기본으로 제공하는 내장 함수들을 활용합니다.
먼저 split() 함수로 입력받은 전체 이름을 공백 기준으로 나누어 리스트를 만듭니다. 다음으로 리스트를 마지막에서 두 번째 단어까지 순회하며 upper() 함수로 각 단어의 첫 글자를 대문자로 변환하고 뒤에 마침표(.)를 붙입니다. 마지막으로 성에 해당하는 리스트의 마지막 항목은 title() 함수로 첫 글자만 대문자로 바꾸어 결과 문자열에 이어 붙입니다.
예시
입력 : Pradip Chandra Sarkar 출력 : P.C Sarkar
알고리즘
fullname(str1) /* str1은 문자열 */ 1단계 : 먼저 문자열을 공백 기준으로 나누어 리스트로 만든다. 2단계 : newspace 변수를 빈 문자열로 초기화한다. 3단계 : 리스트를 마지막에서 두 번째 단어까지 순회한다. 4단계 : upper() 함수로 첫 글자를 대문자로 변환해 추가한다. 5단계 : 리스트의 마지막 항목(성)을 가져와 결과에 붙인다.
예제 코드
# 이름의 이니셜을 출력하는 파이썬 프로그램
def fullname(str1):
# 문자열을 공백 기준으로 분리하여 리스트 생성
lst = str1.split()
newspace = ""
# 마지막 단어(성)를 제외한 앞부분 단어들을 순회
for i in range(len(lst)-1):
word = lst[i]
# 첫 글자를 대문자로 바꾸고 마침표를 붙임
newspace += (word[0].upper() + '.')
# lst[-1]은 리스트의 마지막 항목(성)을 반환
newspace += lst[-1].title()
return newspace
# 드라이버 코드
str1 = input("Enter Full Name ::>")
print("Short Form of Name Is ::>", fullname(str1))
코드 동작 원리
- str1.split() : "pradip chandra sarkar"를 공백으로 나눠 ['pradip', 'chandra', 'sarkar'] 리스트를 만듭니다.
- range(len(lst)-1) : 마지막 단어(성)를 제외한 앞 단어들만 순회합니다.
- word[0].upper() + '.' : 각 단어의 첫 글자를 대문자로 바꾸고 마침표를 붙여 'P.', 'C.' 같은 이니셜을 만듭니다.
- lst[-1].title() : 리스트의 마지막 요소인 성을 꺼내 첫 글자만 대문자로 변환해 그대로 붙입니다.
실행 결과
Enter Full Name ::>pradip chandra sarkar Short Form of Name Is ::> P.C.Sarkar