Python 巨蟒:我如何避免;列表索引超出范围“;在这个简单的while循环中
我的L1数组包含像0.0299999999999这样的数字,我想将其打印为0.03 我的代码可以工作,但在最后给出了一个错误,因为最后一次计数超出了范围。我知道它为什么坏了,但不知道如何修理。谢谢Python 巨蟒:我如何避免;列表索引超出范围“;在这个简单的while循环中,python,loops,while-loop,Python,Loops,While Loop,我的L1数组包含像0.0299999999999这样的数字,我想将其打印为0.03 我的代码可以工作,但在最后给出了一个错误,因为最后一次计数超出了范围。我知道它为什么坏了,但不知道如何修理。谢谢 count = 1 while L1: print "%.2f" %L1[count] count = count + 1 如果要打印L1中的所有数字,请使用: for x in L1: print '%.2f' % x 如果要跳过第一个选项,L1[1::::中的x将起作用 编辑
count = 1
while L1:
print "%.2f" %L1[count]
count = count + 1
如果要打印
L1
中的所有数字,请使用:
for x in L1: print '%.2f' % x
如果要跳过第一个选项,L1[1::::中的x将起作用
编辑:OP在评论(!)中提到他们的愿望实际上是“创建一个新数组”(我想他们实际上是指“一个新列表”,而不是数组。数组
,但这不会有太大的不同)。在浮点世界中没有“四舍五入的数字”——您可以使用四舍五入(x,2)
,但这仍然会给您一个浮点,因此它不一定有“正好两位数”。无论如何,对于字符串列表:
newlistofstrings = ['%.2f' % x for x in L1]
或者对于具有十进制数的数字(如果需要,可以正好有两位数字):
为什么不直接在
L1
列表中循环,而不是执行while循环
for i in L1:
print "%.2f" % i
保持简单:)2个问题:
for i in L1:
print "%.2f" % i
如果您还需要索引(计数):
另请参阅一些更好的使用python的方法。谢谢,但它稍微复杂一些,因为我想创建一个包含四舍五入数字的新数组,我有点不知道如何在没有计数器的情况下执行此操作,这通常是我执行此操作的方式,而您的条件应该检查L1[计数],而不仅仅是L1。L1的真值永远不会改变。
L2=["%.2f" %i for i in L1]
for i in L1:
print "%.2f" % i
for (index, item) in enumerate(L1):
print "Element number (0-based) %d is %f" % (index, item)