inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬 기초부터 실전 100% 활용

사용자 함수

사용자 함수 강의 부분에서 질문있습니다!

해결된 질문

266

콘소메

작성한 질문수 2

1


def get_input_user(msgcasting):
    
    while True:
        try:
            value = casting(input(msg))
            return value
        except:
            continue



user = get_input_user("이름을 입력하세요"str)
age = get_input_user("나이를 입력하세요"int)
>> 이를 실행했을 때, 숫자를 입력하면 while 문이 돌고,
문자열을 입력해야만 다음으로 넘어가는 것 아닌가요?
"이름을 입력하세요" 8
이라고 입력하면 원래는
"이름을 입력하세요"
가 다시 나와야 하는건데, "나이를 입력하세요"
로 넘어갑니다.... 혹시 제가 놓친 부분이 있을까요?

python 웹-크롤링

답변 2

2

남박사

"이름을 입력하세요" 8

이라고 입력을 하면 작성된 사용자 정의 함수에서 자동으로 8 을 str 로 캐스팅했기 때문에 문제가 없는 코드가 됩니다. 사람이 입력할때는 8 을 입력하면서 숫자로 생각하고 입력했겠지만 casting(input(msg)) 에 의해 str 로 캐스팅 되어 8은 문자형태가 되었고 try except 문에 걸리지 않게 됩니다.

말씀하신 의도대로 동작하게 하려면 추가적인 코드가 필요하게 됩니다.

def get_input_user(msg, casting):
    while True:
        try:
            value = casting(input(msg))
            # 캐스팅 형태가 str 인경우에
            if casting == str:
                # 입력된 값이 숫자형태라면 오류로 처리
                if value.isnumeric():
                    raise Exception
            return value
        except:
            continue

user = get_input_user("이름을 입력하세요", str)
age = get_input_user("나이를 입력하세요", int)

일단 즉흥적으로 만들어 봤습니다만... 위 코드처럼 수정되야 말씀하신대로 동작하게 됩니다. raise Exception 은 강제로 Exception 을 발생하게 하는 내용입니다. 참고되셨길 바라며 또 궁금한점 질문 남겨주시기 바랍니다.

0

콘소메

 사람이 입력할때는 8 을 입력하면서 숫자로 생각하고 입력했겠지만 casting(input(msg)) 에 의해 str 로 캐스팅 되어 8은 문자형태가 되었고 try except 문에 걸리지 않게 됩니다.

<< 이 부분을 제가 몰랐었네요! 해결됐습니다 ㅎㅎ 감사합니다! 

38강 = 연산자 더하고 빼기

0

59

2

주석처리

0

116

1

함수의 파라미터값 msg

0

154

1

강의자료 이미지 안나옴

0

238

3

강의자료 질문 두번째

0

164

3

강의자료 관련 질문

0

115

1

파이썬 예외 처리 try / except 파일 처리 코드가 실행이 안됩니다.

0

234

1

소수 너무 어려워요

0

244

1

imagefont 함수 사용

0

238

1

pylint

0

356

1

add 함수 문의 ㅠㅠ

0

281

1

형식 문의드립니다.

0

208

1

변수 명을 왜 src, tar로 하셨는지 궁금합니다.

0

601

1

숫자야구 코드를 짜 봤는데 뭔가 이상합니다.

0

251

1

zsh: command not found: pylint

0

268

1

텔레그램 봇 만들기 코드 실행이 안됩니다 박사님..ㅠ

0

545

1

질문드립니다.

1

373

2

list.reverse() 출력에 대해서 질문있습니다.

1

432

1

데코레이터 함수 및 동작시간 질문입니다.~

1

322

2

opencv 사용하면서 궁금한점 (해상도)

1

780

1

질문드립니다.

1

298

1

아래 오류가 뜨면서 vscode가 컴파일이 되지 않는데.. 혹시 왜이럴까요?

1

444

1

크롤링안되는 현상 문의 드립니다.

1

420

1

파이썬 크롤링 관련 문의

1

276

1