본문 바로가기

Study/class note

python / input

060 입력받기(input)

파이썬 내장함수 input은 사용자가 키보드로 입력한 값을 문자열로 리턴함.

input()의 인자는 사용자 입력을 돕기 위한 안내 문구나 힌트 등을 표시하는 문자열이 됨.

name = input('사원 이름을 입력하세요 ')

 

문제212. 문제 211번 코드를 이용해 사원 이름을 입력했을 경우, 사원이름이 데이터에 없으면 "해당 사원은 없습니다."라는 메시지가 출력되게 하시오.

import pandas as pd
emp = pd.read_csv("c:\\data\\emp2.csv")

try:
    name = input('이름을 입력하세요~')
    result = emp['ename'][emp['ename'] == name.upper()].values[0]
    print(emp['sal'][emp['ename'] == result].values[0])
except LookupError: # 위의 실행문에서 result변수에 담기는 데이터가 없으면 작동
                   print('해당 사원은 없습니다.')

LookupError는 파이썬에서 미리 만들어놓은 예외함수로 변수에 데이터가 담기지 않을 때 즉, 데이터가 없을 때 발생하는 예외처리 함수입니다.

 

+)values[0] 설명

emp는 판다스 데이터프레임(오라클로 말하자면 테이블)
emp['job']은 판다스 데이터프레임의 시리즈인데 오라클로 치면 컬럼을 뜻함.
emp['job'] 안의 데이터에 접근해서 그 데이터를 뽑아내려면 emp['job'].values를 사용해여함.

result = emp['job'][emp['job'] == 'ANALYST'].values
result     #여러개의 값이 있는 리스트 형태로 출력

result = emp['job'][emp['job'] == 'ANALYST'].values[0]
result     #여러개의 값이 있는 리스트에서 0번째 요소를 출력



type(emp['sal'].values)   # numpy.ndarray
print(emp['sal'].values)

# [5000 2850 2450 2975 1250 1600 1500  950 1250 3000  800 3000 1100 1300] 
# 리스트처럼 출력됨
# 리스트처럼 values[0],values[1] .....의 값들을 뽑아낼 수 있음

 

 

문제213. 직업을 물어보게 하고 직업을 입력하면 해당 사원의 이름과 직업이 출력되는 코드를 작성하시오.

import pandas as pd
emp = pd.read_csv("c:\\data\\emp2.csv")

try:
    job = input('직업을 입력하세요~')
    print( emp[['ename','job']][emp['job'] == job.upper()])

문제214. 위의 코드를 수정해서 없는 직업을 넣으면 "해당 직업은 없습니다."라는 메세지가 출력되게 하시오.

import pandas as pd
emp = pd.read_csv("c:\\data\\emp2.csv")

try:
    job = input('직업을 입력하세요~')
    result = emp['job'][emp['job'] == job.upper()].values[0]
    print(emp[['ename','job']][emp['job']==result])
except LookupError:
    print('해당 직업은 없습니다.') 
    
# result 변수에 데이터가 담기지 않으면 LookupError 예외처리가 발생하게 됨.

 

반응형