파이썬 'int' object has no attribute 'isdigit'

조회수 500회
score = int(input("Enter your score: "))

if not score < 0:
    if score.isdigit():
        if score > 100 and score < 0:
            grade = '0~100사이'
        else:
            grade = 'asd'
    else:
        grade = '숫자로 입력해주세요'
else:
    grade = '음수는 입력이 불가'

print(grade)
  • 에러1 음수
  • 에러2 숫자범위
  • 에러3 문자열불가 이렇게 만들려고 하는데

'int' object has no attribute 'isdigit'

라고 정수형 형태가 안맞는 에러가(?) 나와요. 어느부분에서 형태수정해야할지좀 알려주시와요.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    isdigit이 문자열을 검사하는 명령이라서 그럴 겁니다. 애초에 문자열이 입력되면 int 변환 작업에서 에러가 발생합니다. 다음과 같이 구성해보세요.

    score = input("점수를 입력해주세요. : ")
    try:
        score = int(score)
    except:
        raise Exception('숫자로 입력해주세요')
    
    if not score < 0:
        if score > 100 and score < 0:
            grade = '0~100사이입니다.'
    else:
        grade = '음수가 입력되었습니다.'
    
    print(grade)
    
    • 감사합니다 김성은 2022.6.28 23:16
    • 근데 조건이 if조건문만 쓰고 isdigit이용해보기여서 좀 길어질수있지만 이렇게해야하는 상황입니다..! 김성은 2022.6.28 23:16
    • 그럼 int 변환 전에 작업하면 되죠. 초보자 2022.6.29 09:20

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)