[출처] 따라하며 배우는 파이썬과 데이터 과학 8장 lab2
Q. 영한 사전과 같이 영어 단어를 주면, 이에 해당하는 우리말 단어를 알 수 있게 하려고 한다. 딕셔너리 구조를 활용하여 단어를 입력하고, 검색할 수 있는 프로그램을 작성해 보라. 실행된 결과는 명령 프롬프트 '$'가 나타나며, 입력 명령은 '<', 검색 명령은 '>'로 표현 한다. 입력은 "영어 단어:우리말 단어" 형태로 이루어지며, 검색은 영어 단어를 입력한다. 프로그램의 종료는 'q' 키를 입력한다.
원하는 결과
사전 프로그램 시작... 종료는 q를 입력
$ < one:하나
$ < two:둘
$ < house:집
$ < Korea:한국
$ > one
하나
$ > house
집
$ > body
body가 사전에 없습니다.
$ q
사전 프로그램을 종료합니다.
print("사전 프로그램 시작... 종료는 q를 입력")
dictionary = {}
while True:
st = input('$ ') # 사용자로부터 입력을 받고 변수 st에 저장
command = st[0] # 첫 입력 문자 추출
if command == '<':
st = st[1:] # 입력 문자열에서 첫번째 문자 <를 제외하고 나머지를 다시 st에 저장
inputStr = st.split(':') # :를 기준으로 문자열을 분할하고 inputStr 리스트에 저장
if len(inputStr) < 2 : # 리스트 길이가 2미만일 경우(키와 값이 없는 경우) 오류 메시지 출력
print('입력 오류가 발생했습니다.')
else: # 그렇지 않은 경우, dictionary에 단어를 키로, 정의를 값으로 추가
dictionary[inputStr[0].strip()] = inputStr[1].strip()
elif command == '>':
st = st[1:]
inputStr = st.strip() # 문자열의 앞뒤 공백을 제거하고 inputStr에 저장
if inputStr in dictionary: # inputStr이 dictionary의 키로 존재하면 해당 단어의 정의를 출력하고 없으면 없다는 메시지 출력
print(dictionary[inputStr])
else :
print('{}가 사전에 없습니다.'.format(inputStr))
elif command == 'q':
break
else:
print('입력 오류가 발생했습니다.')
print("사전 프로그램을 종료합니다.")
- strip([chars]): 인자로 전달된 String의 왼쪽과 오른쪽 공백 제거
- lstrip([chars]): 인자로 전달된 String의 왼쪽 공백 제거
- rstrip([chars]): 인자로 전달된 String의 오른쪽 공백 제거