|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我的思路是,建立一个函数,输入总长和极限长度,然后: temp =( 总长 / 极限长度) 向上取整,然后再 Panel = (总长 / temp)
最后调用方法的时候,出错了,就是说循环赋值的时候,out of range.
请问怎么写才对?
import math
def Panel_Avg(Len, Panel_Len ):
temp = int(math.ceil(Len / Panel_Len))
print(temp)
for i in range(1,temp+1):
test1 = []
if i == temp:
test1[i] = int(Len % Panel_Len)
else:
test1[i] = int(Len / Panel_Len)
return test1
Panel_Avg(3100,1240)
运行结果:
C:\Python36\python36.exe C:/Users/irhphd/PycharmProjects/Panel/excel_test2.py
3
Traceback (most recent call last):
File "C:/Users/irhphd/PycharmProjects/Panel/excel_test2.py", line 15, in <module>
Panel_Avg(3100,1240)
File "C:/Users/irhphd/PycharmProjects/Panel/excel_test2.py", line 10, in Panel_Avg
test1[i] = int(Len / Panel_Len)
IndexError: list assignment index out of range
Process finished with exit code 1
hi 原因如下
- import math
- def Panel_Avg(Len, Panel_Len ):
- temp = int(math.ceil(Len / Panel_Len))
- print(temp)
- test1 = [ ] #如果要保留所有数值,列表 test1 应该处于for循环外
- for i in range(1,temp+1):
-
- if i == temp:
- test1.append( int(Len % Panel_Len) ) # 之前的报错原因是:空列表无法通过索引赋值,因为列表中无元素;建议通过append()方法
- else:
- test1.append( int(Len / Panel_Len) )
- return test1
复制代码
>>> Panel_Avg(3100,1240)
3
[2, 2, 620]
|
|