-python 用python编写一个简单的能输出浮点型数值格式的仿range函数

先介绍一哈range()函数

我们都知道在python中有这样一个内置函数:range() -使用range()函数可创建一个整数列表,一般用在for循环中。

函数语法
range(start, stop,[step])

参数说明
_start: 计数从start开始。默认是从0开始。例如:range(5)就等价于range(0,5);
_stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;
_step: 步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1);

实例

>>> x = [i for i in range(5)]
>>> x
[0,1,2,3,4]
>>> x = [i for i in range(0,5)]
>>> x
[0,1,2,3,4]
>>> x = [i for i in range(0,5,1)]
>>> x
[0,1,2,3,4]

下面是range在for中的应用,循环出wdnmd的每个字母:

>>> x = 'wdnmd'
>>> for i in range(len(x)):
	print(x[i])


w
d
n
m
d

接着简单的编写一下支持浮点数的f_range()函数

由于range()函数的数字类型不支持浮点数的类型,因此就来编写一个简单的f_range()函数来实现支持浮点数输出的功能:

f_range()函数的语法和参数都按照python中内置函数range()的规定来写
即:f_range(start, stop,[step])

接着在pycharm或者IDLE中开始编写f_range()函数,(注:这里为了方便阅读我直接把思路一注释的形式写进代码里了。)

import math #导入math模块以便使用做数学运算的函数

def f_range(start,stop,step): #定义f_range函数以及其语法形式
'''
以字符串的形式遍历start stop step三个变量的小数部分的位数
'''
    start_digit = len(str(start))-1-str(start).index(".") 
    stop_digit = len(str(stop))-1-str(stop).index(".")
    step_digit = len(str(step))-1-str(step).index(".")
'''
取三个变量中小数位数最大的那个为基准赋值给digit(使接下来运算方便转化为整数以及最终输出
的小数值的小数位数都为最大的那个位数来达到统一)
'''
    digit = max(start_digit,stop_digit,step_digit)
'''
返回值就利用range函数的用法,但是在计算时,range函数不能直接
计算小数,所以我们就先把这个数扩大10的其小数位数的次方倍(即
直接化为整数),在由range函数循环完毕之后再除以10的其小数位
数的次方倍即可转化为小数
'''
    return[(start*10**digit+i*step*10**digit)/10**digit for i in range(int((stop-start+step-step/100)/step))]

c= f_range(1.1 ,10.2,0.3) #定义一个初始值
print (c) #输出c此时小数集

运行结果如下:

[1.1, 1.4, 1.7, 2.0, 2.3, 2.6, 2.9, 3.2, 3.5, 3.8, 4.1, 4.4, 4.7, 5.0, 5.3, 5.6, 5.9, 6.2, 6.5, 6.8, 7.1, 7.4, 7.7, 8.0, 8.3, 8.6, 8.9, 9.2, 9.5, 9.8, 10.1]

小结

有的时候,硬的不行,就来软的。(:з」∠)

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值