본문 바로가기
파이썬

파이썬 AttributeError : 'int'개체에 'isdigit'속성이 없습니다.

by º기록 2020. 11. 14.
반응형
numOfYears = 0
cpi = eval(input("Enter the CPI for July 2015: "))
if cpi.isdigit():
    while cpi < (cpi * 2):
        cpi *= 1.025
        numOfYears += 1
    print("Consumer prices will double in " + str(numOfYears) + " years.")
while not cpi.isdigit():
    print("Bad input")
    cpi = input("Enter the CPI for July 2015: ")

다음과 같은 오류가 발생합니다.

AttributeError : 'int'개체에 'isdigit'속성이 없습니다.

나는 프로그래밍을 처음 접했기 때문에 그것이 내게 무슨 말을 하려는지 정말로 모른다. 사용자가 입력 한 번호가 유효한지 확인하기 위해 if cpi.isdigit () : 를 사용하고 있습니다.

 

해결 방법

 

numOfYears = 0
# since it's just suppposed to be a number, don't use eval!
# It's a security risk
# Simply cast it to a string
cpi = str(input("Enter the CPI for July 2015: "))

# keep going until you know it's a digit
while not cpi.isdigit():
    print("Bad input")
    cpi = input("Enter the CPI for July 2015: ")

# now that you know it's a digit, make it a float
cpi = float(cpi)
while cpi < (cpi * 2):
    cpi *= 1.025
    numOfYears += 1
# it's also easier to format the string
print("Consumer prices will double in {} years.".format(numOfYears))

 

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

 

 

반응형

댓글