2017-09-24 94 views
-5
while count > 0: 
    if count = 0: 
     return n 
    elif count < 0: 
     print(" ") # prints empty if n is below 0 
    else: 
     count = count - 1 
     collect += math.ceil((n - 5)/2) 
    return collect 

输入是(1003,3) - 结果是499,这意味着它只是循环一次,然后减去5,然后除以2,然后停止。有人知道为什么为什么只循环一次?

+6

'='是不是''==。 – Chris

+0

仍然不起作用 – Gekz

+3

您也未显示完整的代码。输入_to what_?来自什么?你真的想在你的循环中“返回”吗? – Chris

回答

1

你的内部条件与时间无关。你在循环中有一个return语句,所以是的,它只循环一次。

开始与这个

import math 

n, count = (1003, 3) 
print("N = " + str(n)) 
while count > 0: 
    n = math.ceil((n - 5)/2) # Update this to do whatever your logic is 
    print(count, n) 
    count -= 1 
if n < 0: 
    print("N is negative") 
else: 
    print("N = " + str(n)) 
0

你有几个问题。

首先,您的语法没有均匀缩进。

其次,您的if语句有=而不是==。第一个用于赋值给变量,第二个用于检查相等性。

第三,你有一个return语句,它将从这个循环内部的任何函数中退出。