Python学习之Part20.python中的内置函数_01_基础数据类型相关的函数

python中的内置函数总共有68个,与基础数据类型相关内置函数有38个,根据其功能,可以分为2部分:
在这里插入图片描述

1.与数字相关的14个内置函数:

和数字相关的14个内置函数总结如下:
在这里插入图片描述
以下进行说明:
(1).关于数据类型的函数
 由于bool,int,float都是常见的数据类型,在此处不再说明,需要注意的是,float类型的小数,当小数很长是,变量的值会不准,例如:

f = 1.23423973496754890
print(f)

输出是:1.234239734967549
 complex([real[, imag]])函数用于创建一个值为 real + imag * j 的复数;
参数:两个数字或一个字符串(字符串必须是数字或复数表达式)
  real – int, long, float或字符串;
  imag – int, long, float;
返回值:一个复数
说明:python中复数的虚部用j或J表示,而不是用i.
例如:

print(complex(1.2,3.4))
print(complex('1+2j'))

输出:
在这里插入图片描述
(2).关于进制转换的函数
bin() & oct() & hex() 用来做进制转换
参数:int型的整数
返回值:参数进行进制转换后的结果
返回值类型:字符串型
例如:

print(bin(10),type(bin(10)))
print(oct(10),type(oct(10)))
print(hex(10),type(hex(10)))

输出结果如下:
在这里插入图片描述
(3).关于数学运算的函数
1.abs(x):计算x的绝对值
 参数:数值表达式
 返回值:参数的绝对值,返回值类型与参数类型相同
2.divmod(x,y):计算x/y的商和余数
 参数:int型或float型的数字
 返回值:(x//y, x%y)
 返回值类型:元组
例如:

print(divmod(7.6,3))
print(divmod(9,5))

结果:
在这里插入图片描述
3.round(num, [x]):取小数的精确值
 参数:num为int或float型,x为int型数字,不传参默认保留整数
 返回值:将num精确到x位
 返回值类型:float型
 在使用round时需要注意pyhton2和python3的区别:
在python2中:保留值将保留到离上一位更近的一端(四舍六入),如果距离两端一样远,则保留到离0远的一边。所以round(0.5)会近似到1,而round(-0.5)会近似到-1。
在python3中:如果距离两边一样远,会保留到偶数的一边。比如round(0.5)和round(-0.5)都会保留到0,而round(1.5)会保留到2。
还需要注意一些特殊值的近似,例如: round(2.675, 2) 的结果是 2.67,这是因为浮点数的精度问题,因为在机器中浮点数不一定能精确表达,因为换算成一串1和0后可能是无限位数的,所以机器会出了截断处理,2,675 的实际存储的值会比它本身小一点。

print(round(3.1415926,3))
print(round(0.5))
print(round(2.675,2))

结果为:
在这里插入图片描述
4. pow(x, y[, z]):函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
 参数:2个参数时可以是 int 或 float 型数字,3个参数时参数必须全为 int 型
 返回值:xy 或 (xy)%z
 返回值类型:2个参数时,若x,y都是int型,则返回int型,若有一个float型,则返回值为float型;3个参数时返回int型。

print(pow(2,3))
print(pow(3.0,2.0))
print(pow(2,3,1))
print(pow(3,2,5))

计算结果:
在这里插入图片描述
sum() & min() & max() 是常用函数,不再进行说明

2.与数据结构相关的24个内置函数

和数据结构相关的24个内置函数总结如下:
(一些常用的函数不再过多说明)
在这里插入图片描述(1).序列相关函数
1.reversed() 函数:将参数所给的序列反序输出
 参数:可迭代的序列
 返回值:参数反序
 返回值类型:迭代器
 说明:reverse()方法没有返回值会改变直接原序列,此函数不会改变原序列

l = [2,1,3,4,5]
l2 = reversed(l)
l3 = l.reverse()
print(l)
print(l2)
print(l3)
for i in l2:
    print(i,',',end='')

输出如下:
在这里插入图片描述2.slice(start, stop[, step]) 函数:
 参数:int 型
 返回值:切片对象

l = (1,2,23,213,5612,342,43)
sli = slice(1,5,2)  # 相当于 l[1:5:2] 索引值1到4的元素并隔一个取值
print(l[sli])
print(sli)
# 等价于
print(l[1:5:2])

输出为:
在这里插入图片描述
3.bytes() 函数:返回参数对应的bytes类型数据,可以将unicode编码转换成 utf-8, gbk等
 说明:由于python在内存中的存储都是以unicode编码格式进行存储,所以当我们需要按照指定格式编码解码时,先将字符decode为unicode编码,在encode为指定编码

print(bytes('你好', encoding='GBK'))      # unicode转换成GBK的字节码
print(bytes('你好', encoding='utf-8'))    # unicode转换成utf-8的字节码
print(bytes('你好', encoding='GBK').decode('GBK'))      # 解码方式正确才能得出正确信息
print(bytes('你好', encoding='utf-8').decode('GBK'))    # 解码方式错误会造成乱码

输出结果为:
在这里插入图片描述

4.bytearray() 函数:查看参数在内存中对应的字节
 返回值:字节数组
 说明:可以直接修改长字符串中的某个字节,而不在内存中创建新的变量

b_array = bytearray('你好', encoding='utf-8')
print(b_array, id(b_array))
print(b_array.decode('utf-8'))
b_array[0] = 227
print(b_array.decode('utf-8'), id(b_array))

输出结果为:
在这里插入图片描述5.memeoryview() 函数:
 说明:我们在对字符串进行切片时,切片的结果会生成一个新的字符串存在内存中,memeoryview 可以将一个bytes类型字符串切片查看,不会生成一个新的占内存的字符串,但是查看也是只能看到字节码,若是将字节码转换成字符串又会占内存(字符产需要存储)

li = 'abcdef'
print(bytes(memoryview(bytes(li, encoding='utf-8'))[:3]))

6.repr() 函数: 会让一个变量原封不动的输出出来
例如:

name = 'name'
print('%s'%name)
print('%r'%name)
print(repr('1'))
print(repr(1))

输出:
在这里插入图片描述
(2).其他一些与数据类型相关的函数

1.enumerate() 函数:
 参数:为可遍历/可迭代的对象
 返回值:enumerate对象
 说明:enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate
举例:

lis = [1,2,3,4,5]
for index in enumerate(lis):
    print(index)
# for循环遍历
for index, value in enumerate(lis):
    print(index,value)
# 指定enumerate索引从1开始
for index,value in enumerate(lis,1):
    print(index,value)
# 需要统计大文件行数时:
count = 1
for index, line in enumerate(open('file',encoding='utf-8')):
    count += 1

2.all & any 函数:
 参数:可迭代的
 返回值:True & False
 返回值类型:bool
 说明:all传入的参数中有任何一个False就返回False,都是True则返回True
    any传入的参数中有任何一个True就返回True,都是False则返回False

print(all(['a','',123]))
print(all(['a',123]))
print(all([0,123]))
print(all([False, 13]))
print(all([True,'',123]))
print(all([True,123]))
print(any(['', True, [], 123]))

3.zip() 函数:拉链方法,以最短的为基准
 参数:可迭代的
 返回值类型:迭代器
 说明:字典只能将key拉上,而且key是无无序的

l1 = [1,2,3,4,5]
l2 = ['a', 'b', 'c', 'd']
t3 = ('*', '**', [1,2,3])
d4 = {'k1':1, 'k2':2}
print('__next__' in dir(zip(l1, l2, t3, d4)))
print('__iter__' in dir(zip(l1, l2, t3, d4)))
for i in zip(l1, l2, t3, d4):
    print(i)

输出为:
在这里插入图片描述
filter() & map() & reduce() 函数在其他博客中已经说明…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值