【发布时间】:2018-01-12 18:51:43
【问题描述】:
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(): 来检查用户输入的数字是否有效。
【问题讨论】:
-
为什么不使用
int(input(...)),它将字符串转换为int -
您能否提供更多信息,例如您传递的价值是什么?你的python版本是什么?什么是堆栈跟踪?
-
我正在输入一个整数“239”,但是当其他人运行该程序时,他们应该能够输入一个整数或浮点数。
-
附加这个代码有一个巨大的Arbitrary code execution漏洞,因为它
evaling用户输入,其中可能包含python代码。 -
这段代码将永远循环,除非
cpi为负数,因为根据基本数学规则,非负数小于自身乘以二。
标签: python