
正文
深入python函数 函数 python
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
python函数深入浅出 17.random.randint()函数详解
random() 函数命名来源于英文单词random(随机)。
randint是random + integer拼接简写而成,代表随机一个整数
Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。
random.randint() 函数的例子:
用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:a=n=b
a必须小于或等于b,否则报错。
其他random的方法:
无
随机数是用于生成测试入参的好办法,也常见于各种需要随机的场合。
但是每次随机带来的不确定性也会造成某些验证功能的困难,因此可以使用random.seed()通过指定随机的种子值保证每次生成随机数是同一序列的伪随机数。观察下面的输出:
对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇
相关问答
Q1: python函数深入浅出 12.os.getcwd()函数详解
os是python自带的系统模块,需要import使用
os 源于英文Operating System(操作系统)的缩写
cwd 则是源于Current Working Directory,中文意思是 当前工作目录
所以os.getcwd() 指获取当前工作目录
示例深入python函数:
getcwd()方法语法格式如下:
总之,举例来讲,os.getcwd()、sys.path[0] (sys.argv[0])和 file 的区别是这样的:
假设目录结构是:
然后我们在C:\test下面执行
这时sub_path.py里面与各种用法对应的值其实是:
无
path的准确定位对于import包,读写文件都非常重要,
如果一时不能理解,可以在文件执行开头多加几个
print帮助我们确定那个路径是我们希望拿到的,然后将其设为全局变量就好深入python函数了
对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇
Q2: python函数深入浅出 11.math.pow()及其相关函数详解
这是math模块的一个函数
pow() 源于英文power深入python函数,返回给定数字的乘幂
所以深入python函数我们执行math.pow()示例:
注意:math 模块则会把参数转换为 float。
math是非常常用的数学计算包,其中math.pow()语法如下
参数说明:
等同于写法
但注意math函数返回的是浮点数,后者可能返回整数
其他常用的数学函数有:
python2 有cmp(x,y)函数,python3移除了cmp,新增了 operator模块,提供了如下比较方法
作为比较函数
在处理数字时使用数学函数能更高效的获取计算结果。
对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇
Q3: python函数深入浅出 7.help()函数详解
help 源于英文,标识帮助
help函数是python的一个内置函数(python的内置函数可以直接调用,无需import)
所以我们执行help示例:
2.函数定义源码及其用法拆解
一些不常用的函数或是模块的用途不是很清楚,这时候就需要用到help函数来查看帮助。
参数说明:
也可传入一个数据结构查询帮助方法
如下,就可以展示出可以对list做的操作
还可以具体到某个方法:
3.版本差异
无版本差异
4.学习建议
当手边资料较少时,不要忘了系统提供的help函数可以提供给我们陌生方法的用法参考。
对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇
Q4: python函数深入浅出 16.time.sleep()函数详解
time.sleep() 函数命名来源于英文单词time(时间)和sleep(睡眠)。
time 是python带的非内置库,使用时需要import,主要用于处理和时间相关的操作。
time.sleep用于给定时间内挂起(等待)当前线程的执行。
time.sleep() 函数的例子:
可以注释掉time.sleep(2)再运行一次对比一下
可以看到虽然都是打印出一样的结果,但time.sleep()加入了等待时间
这里还要解释一下python中线程与进程的区别。
举个例子,厨房做菜看成是一个进程,那么这个进程下面就可能有多个人或一个人(cpu基本执行单元,即线程)来执行,多个人可以分别洗菜,刷碗,摆盘等等同时作业,他们又是共享这个厨房的资源的。每个人存在一定的资源竞争关系,比如炉火只有1个。
这里time.sleep是针对线程执行的,也就是其中一个人去sleep睡觉了,不影响其他人的继续工作。
参数
该函数没有返回值。
结果类似如下:
可以看到秒数相差了5
无
time.sleep()常用于推迟执行的场景
在python中,与时间相关的模块有:time,datetime以及calendar
对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇
Q5: 深入理解Python reduce函数
例如上面的例子,实现一个整形集合的累加。假设lst = [1,2,3,4,5],实现累加的方式有很多:
第一种:用sum函数。
sum(lst)
第二种:循环方式。
def customer_sum(lst):
result = 0
for x in lst:
result+=x
return result
def customer_sum(lst):
result = 0
while lst:
temp = lst.pop(0)
result+=temp
return result
if name ==" main ":
lst = [1,2,3,4,5]
print customer_sum(lst)
第三种:递推求和
def add(lst,result):
if lst:
temp = lst.pop(0)
temp+=result
return add(lst,temp)
else:
return result
if name ==" main ":
lst = [1,2,3,4,5]
print add(lst,0)
第四种:reduce方式
lst = [1,2,3,4,5]
print reduce(lambda x,y:x+y,lst)
lst = [1,2,3,4,5]
print reduce(lambda x,y:x+y,lst,0)
def add(x,y):
return x+y
print reduce(add, lst)
def add(x,y):
return x+y
print reduce(add, lst,0)
有一个序列集合,例如[1,1,2,3,2,3,3,5,6,7,7,6,5,5,5],统计这个集合所有键的重复个数,例如1出现了两次,2出现了两次等。大致的思路就是用字典存储,元素就是字典的key,出现的次数就是字典的value。方法依然很多
第一种:for循环判断
def statistics(lst):
dic = {}
for k in lst:
if not k in dic:
dic[k] = 1
else:
dic[k] +=1
return dic
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print(statistics(lst))
第二种:比较取巧的,先把列表用set方式去重,然后用列表的count方法
def statistics2(lst):
m = set(lst)
dic = {}
for x in m:
dic[x] = lst.count(x)
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print statistics2(lst)
第三种:用reduce方式
def statistics(dic,k):
if not k in dic:
dic[k] = 1
else:
dic[k] +=1
return dic
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print reduce(statistics,lst,{})
或者
d = {}
d.extend(lst)
print reduce(statistics,d)
通过上面的例子发现,凡是要对一个集合进行操作的,并且要有一个统计结果的,能够用循环或者递归方式解决的问题,一般情况下都可以用reduce方式实现。
深入python函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于函数 python、深入python函数的信息别忘了在本站进行查找喔。







