본문 바로가기
파이썬

파이썬 Python 오류 : +에 대해 지원되지 않는 피연산자 유형 : 'int'및 'NoneType'

by º기록 2020. 12. 13.
반응형

이 오류나 그 의미를 이해하지 못합니다. 아래에 내 코드를 붙여 넣을 것이지만 실제로 관련성이 없다고 생각합니다. 이 오류를 이해하고 싶습니다.

모든 숫자 1-1000 (포함)의 문자를 더하는 것은 약간의 코드입니다.

def number_translator(x):
    if x == 1:
        return 3
    elif x == 2:
        return 3
    elif x == 3:
        return 5
    elif x == 4:
        return 4
    elif x == 5:
        return 4
    elif x == 6:
        return 3
    elif x == 7:
        return 5
    elif x == 8:
        return 5
    elif x == 9:
        return 4
    elif x == 10:
        return 3
    elif x == 11:
        return 6
    elif x == 12:
        return 6
    elif x == 14:
        return 8
    elif x == 15:
        return 7
    elif x == 16:
        return 7
    elif x == 17:
        return 9
    elif x == 18:
        return 8
    elif x == 19:
        return 8
    elif x == 20:
        return 6
    elif x == 30:
        return 6
    elif x == 40:
        return 5
    elif x == 50:
        return 5
    elif x == 60:
        return 5
    elif x == 70:
        return 7
    elif x == 80:
        return 6
    elif x == 90:
        return 6

count = 0
for element in range(1, 1001):
    if element < 21:
        count += number_translator(element)              # for numbers 1 - 20
    elif 20 < element < 100:
        count += number_translator(int(str(element)[0]) * 10) + number_translator(int(str(element)[1]))  # for numbers 21 through 100
    elif element % 100 == 0 and element != 1000:
        count += number_translator(int(str(element)[0])) + 7   # for numbers divisible by 100, but not 1000
    elif element == 1000:
        count += 11                                          # just for 1000
    elif element % 100 < 20:
        count += number_translator(int(str(element)[0])) + 10 + number_translator(int(str(element)[1:3]))      # now I add in numbers like 101 - 120, 201 - 220, etc.
    else:
        count += number_translator(int(str(element)[0])) + 10 + number_translator(int(str(element)[1]) * 10) + number_translator(int(str(element)[2])) # now the rest( 121, 122, 123, 225, 256, 984, etc.)

print(count)

 

해결 방법

 

number_translator () if 테스트가 true로 평가되지 않으면 함수는 None 을 반환합니다. 오류 메시지는 그 결과입니다.

'NoneType'이 포함 된 오류가 표시 될 때마다 피연산자 또는 다른 것을 예상했을 때 None 인 개체가 있음을 의미합니다.

 

참조 페이지 https://stackoverflow.com/questions/24110282

 

 

반응형

댓글