2012-11-26 65 views
0

我的目标是制作一个程序,它接受一个输入(Battery_Capacity)并最终吐出(New_Battery_Capacity)列表和其所需的(循环)数量,最终达到最大容量80。使用范围函数

Cycle = range (160) 
Charger_Rate = 0.5 * Cycle 
Battery_Capacity = float(raw_input("Enter Current Capacity:")) 
New_Battery_Capacity = Battery_Capacity + Charger_Rate 

if Battery_Capacity < 0: 
    print 'Battery Reading Malfunction (Negative Reading)' 

elif Battery_Capacity > 80: 
    print 'Battery Reading Malfunction (Overcharged)' 

elif float(Battery_Capacity) % 0.5 !=0: 
    print 'Battery Malfunction (Charges Only 0.5 Interval)' 

while Battery_Capacity >= 0 and Battery_Capacity < 80: 
    print New_Battery_Capacity 

我想知道为什么我的Cycle = range(160)在我的程序中不起作用?

+1

什么是不工作? – kindall

+0

它不起作用?在将其分配给'range(160)'后,您似乎没有对“Cycle”做任何事情。 –

+0

对于初学者,在为Cycle给出一个值之前,您可以在Charger_Rate = 0.5 * Cycle中使用'Cycle'。 –

回答

0

您的第一个问题是您的前两行顺序错误。你需要一个“Cycle”变量才能使用它。

虽然您在交换时仍然会出错。你不能用浮点数乘以一个列表。列表解析就是你越想要的东西:

Charger_Rate = [i * .5 for i in Cycle] 

据我所知道的,range(160)部分是好的。