python中for i in range(0, 3.0 , 0.1)为啥错?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中for i in range(0, 3.0 , 0.1)为啥错?相关的知识,希望对你有一定的参考价值。
如果想要输出公差为0.1的等差数列呢?
python中的浮点数range方法
我们知道python中有个range函数用来产生一个范围内的数字数组,但是浮点数没有,我们来定义一个
#python中的range函数支持步进,如下:
>>> print range(2,15,3)
[2, 5, 8, 11, 14]
#但是浮点数不支持range函数,自己定义一个类似的
def floatrange(start,stop,steps):
''' Computes a range of floating value.
Input:
start (float) : Start value.
end (float) : End value
steps (integer): Number of values
Output:
A list of floats
Example:
>>> print floatrange(0.25, 1.3, 5)
[0.25, 0.51249999999999996, 0.77500000000000002, 1.0375000000000001, 1.3]
'''
return [start+float(i)*(stop-start)/(float(steps)-1) for i in range(steps)]
#运行范例:
>>> print floatrange(0.25, 1.3, 5)
[0.25, 0.51249999999999996, 0.77500000000000002, 1.0375000000000001, 1.3] 参考技术A range函数用来产生一个范围内的整数数组,输入浮点数会出错。
一个办法是自己写一个函数,参考http://www.sharejs.com/codes/python/1866;
另一个是引用numpy模块的arange函数:
>>> from numpy import arange
>>> arange(0.5, 5, 1.5)
array([0.5, 2.0, 3.5]) 参考技术B
此路不通,加一行代码就行:
for i in range(0, 30):i = i / 10.0 #此时的i值和你想要的一个样
列表中使用嵌套for循环[i*j for i in range for j in range]
利用嵌套for循环形成一个新列表
[i*j for i in range(3) for j in range(3)]相当于如下代码
li=[] for i in range(3): for j in range(3): print(i*j) li.append(i*j) print(li)
结果和[i*j for i in range(3) for j in range(3)]的结果一样都是:
[0, 0, 0, 0, 1, 2, 0, 2, 4]
以上就是利用嵌套for循环形成一个新列表是怎么形成的
以上是关于python中for i in range(0, 3.0 , 0.1)为啥错?的主要内容,如果未能解决你的问题,请参考以下文章
python中range循环的用法 for i in range()括号中能跟几种形式 有路过的大
django模块不能用for i in range(0, 5)总报错