while循环未执行时,被测试的整数值是否过高?

时间:2018-08-26 22:11:18

标签: python python-3.x python-3.6

摘要:while (1000000000 <= 0) #1 billion正在测试中。 这个值是否太高而无法在Python中测试整数?还是我的代码(下面)由于其他原因而不执行while循环?

我试图通过花费100美元/秒来确定花费10亿美元所需的时间,而这笔钱每年还赚取1%的利息:

currentAmount = 1000000000 # 1 billion

MONEY_SPENT_PER_SECOND = 100

days = 1 #up to 365

INTEREST_RATE_PER_DAY = .01 / 365

SECONDS_IN_DAY = 86400

MONEY_SPENT_PER_DAY = SECONDS_IN_DAY * 100 # $8,640,000

interestEarnedToday = 0

while(currentAmount <= 0):
    print("In loop") #test to see if code is in loop, but this does not get printed
    interestEarnedToday = INTEREST_RATE_PER_DAY * currentAmount
    currentAmount = currentAmount + interestEarnedToday
    currentAmount = currentAmount - MONEY_SPENT_PER_DAY
    days = days + 1

但是while循环永远不会进入,我不确定为什么吗?由于print(currentAmount)输出1000000000,所以我觉得这表明python可以处理这么大的整数。感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您的循环条件似乎已反转,因此在第一次检查时为假,这就是循环体从不运行的原因。

您应将currentAmount >= 0放入循环条件。

说到Python中的整数大小,它们可以任意大,所以您不必担心它们超出某个范围(例如其他语言中的32位或64位)。