반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 How to decode base64 url in python? (0) | 2020.11.15 |
---|---|
파이썬 모든 이전 버전의 Python 제거 (0) | 2020.11.15 |
파이썬 Python urllib 대 httplib? (0) | 2020.11.14 |
파이썬 테이블이없는 경우 SQLalchemy (0) | 2020.11.14 |
파이썬 Mapping dictionary value to list (0) | 2020.11.14 |
댓글