python函数生成 python自动生成函数( 二 )


02
在打开的shell中,首先需要导入random库,才可以使用random中的方法,首先介绍下应用最多的函数 , random.random() , 可以生成一个0到1的随机符点数
03
random.uniform(a,b)函数,生成指定范围内的随机符点数 , 如下图
04
random.randint(a,b)函数,生成一个指定范围内的整数 , 如下图
05
random.choice(sqe)函数 , 从sqe序列中得到一个随机元素,如下图,序列元素可以包含很多种类,集合,列表,甚至元组都可以作为参数进行传递
Python 函数 - 返回生成器如果函数要返回一系列结果python函数生成,我们常见python函数生成的方法就是将结果放到一份列表中python函数生成,然后返回给调用者 。比如下面python函数生成的函数python函数生成,返回字符串中每个单词的首字母在真个字符串中的索引:
运行结果:
上述的结果完全符合我们的预期,但get_word_index函数不够简洁 。下面我们尝试使用生成器来实现:
运行结果:
改写之后,不仅运行结果符合要求 , 由于不需要和result列表交互,函数也变得非常简洁 。下面我们就来详细学习下生成器吧~
生成器是指使用yield表达式的函数,调用生成器函数时 , 它并不会真的运行,而是会返回迭代器 。每次在这个迭代器上面调用内置的next函数时,迭代器就会把生成器推进到下一个yield表达式那里 。生成器传给yield的值均会由迭代器返回给调用者 。
此外,如果输入量非常大 , 使用列表作为返回值,那么程序就有可能耗尽内存并崩溃 。相反,使用生成器之后,则可以应对任意长度的输入数据 。
例如 , 下面这个生成器函数可以获取文件中单词的索引,而不管文件内容多大,该函数执行时消耗的内存,只由单行的文本长度决定:
其中 test_generator.txt 中的内容如下:
运行结果:
下面这句话特别重要: 生成器函数返回的迭代器,是由状态的,及调用者不应该反复使用它。我们那word_index_iter来说明:
如果想重复调用 , 请将其封装成容器:
运行结果:
关于上述自定义容器的实现原理,我的另外一篇文章做了详细介绍,链接奉上:
python用什么函数产生随机数在python中用于生成随机数的模块是random,在使用前需要import
random.random:
random.random():生成一个0-1之间的随机浮点数.例:
[python] view plain copy
import random
print random.random()
# 0.87594424128
random.uniform
random.uniform(a, b):生成[a,b]之间的浮点数.例:
[python] view plain copy
import random
print random.uniform(0, 10)
# 5.27462570463
random.ranint
random.randint(a, b):生成[a,b]之间的整数.例:
[python] view plain copy
import random
print random.randint(0, 10)
# 8
random.randrange
random.randrange(a, b, step):在指定的集合[a,b)中,以step为基数随机取一个数.如random.randrange(0, 20, 2),相当于从[0,2,4,6,...,18]中随机取一个.例:
[python] view plain copy
import random
print random.randrange(0, 20, 2)
# 14
python随机生成100内的10个整数?在Python中 , 你可以使用 random 模块的 randint() 函数来随机生成指定范围内的整数 。例如,要随机生成100内的10个整数 , 你可以这样写:
==========================
import random# 导入random模块
# 使用random.randint()函数生成10个1到100的整数
for i in range(10):
print(random.randint(1, 100))
==========================

推荐阅读