第五章 python的函数(8):函数的内置方法

python函数有很多内置方法,在这里我们介绍一下函数的内置方法。

5.7.1内置方法

  • abs(n)
    取绝对值

  • dict

  • help

  • min(arg1, arg2, args, key) 取最小值 min([1,2,7,8,5,-1,-10])

    max() 取最大值

  • setattr()
    ??(待补充)

  • bool() 转换成bool类型

  • all(n) bool(n的每个元素)如果都是True,返回True。有任何一个是False,返回False。 注意:当n是个空的可循环类型(比如空列表[]),返回True

    类似'and',可以在很多个and处理的情况下用

  • any(n) bool(n的每个元素)只要有一个是True,返回True。全是false,返回false。 注意:当n是个空的可循环类型(比如空列表[]),返回False

    扫描二维码关注公众号,回复: 6596306 查看本文章

    类似'or',可以在很多个or处理的情况下用

  • bytearray(bytes型) 将bytes修改成bytearray,可修改的数组(可变数据类型)。(bytes是不可变数据类型)

  • bytes() 转成bytes型。
by = bytes('中国','utf-8')  # 相当于 by = '中国'.encode('utf-8')
print(by)
  • callable()
    判断对象是否可以被调用

  • chr(n)
    返回第n号ascii码对应的字符

  • classmethod()
    面向对象时学习

  • compile() 自己写的语法转换成py解释器可以懂的内容,高端。。。

  • complex() 求复数

  • delattr() 面向对象学

  • dir(var) 返回变量var可用的所有方法和属性

    dir(),没有参数的时候返回当前程序里定义的所有变量

  • hex(n) 将n转成16进制

  • slice() 切片。不常用

  • divmod(a,b) 返回(商,余数)的元组:(a//b,a%b)

  • id() 取内存地址

  • sorted() 排序。需要会用。

    还有reversed()

  • ascii() 没啥用

  • enumerate() 枚举。返回一个对象,我们可以以for循环来取出枚举的内容。内容是(index,value)元组组成的

  • oct(10进制) 转8进制

  • bin(10进制) 转2进制

  • ord(字符) 返回字符对应的ascii码

  • staticmethod() 以后讲

  • eval() 读取文件的时候,把文件字符串转成相应的数据类型(以格式判断)

    文件只能写入字符串或bytes类型。 当我们要写入字符串以外的数据类型的时候,需要先转成字符串。 读取文件的时候也只能读取到字符串。 想把数据类型转成原有的数据类型,就要用eval

list1 = ['aaa', 'bbb', 'ccc']
dict1 = {'k1': 'v1', 'k2': 'v2'}

# 写入文件
with open('testdata.txt', 'w') as f:
    f.write(str(list1) + '\n')
    f.write(str(dict1))

# 读取文件
with open('testdata.txt', 'r') as f:
    d1 = f.readline()  # 读取的是str
    d2 = f.readline()  # 读取的是str
    f.seek(0)
    d3 = eval(f.readline())  # 这一行格式是list,所以读取成list类型
    d4 = eval(f.readline())  # 这一行格式是dict,所以读取成dict类型

print(type(d1), ':', d1, end="")
print(type(d2), ':', d2)
print(type(d3), ':', d3)
print(type(d4), ':', d4)

执行结果:

<class 'str'> : ['aaa', 'bbb', 'ccc']
<class 'str'> : {'k1': 'v1', 'k2': 'v2'}
<class 'list'> : ['aaa', 'bbb', 'ccc']
<class 'dict'> : {'k1': 'v1', 'k2': 'v2'}
  • exec('sen') 执行sen字符串的语句。不太常用。
    exec("print('hello world!')")

  • filter(func,iterable)
    以iterable的每一个元素作为参数赋给func执行,如果func的返回值是True,则将符合条件的元素返回(filter对象返回)

    可以用list()把filter对象转成列表

li = [1, 2, 3, 4, 5, 6, 7, 8, 9]

def fun(a):
    if a > 3:
        return True
    else:
        return False

f_li = list(filter(fun,li))  # 把filter返回的iterable对象转成list形式
print(f_li)

执行结果:

[4, 5, 6, 7, 8, 9]
  • map(func,iter1) 用法类似filter,将iter1中的每个元素作为func的参数进行处理,返回处理结果的对象。(对象可以用list()转换成列表)

  • frozenset()  
    把一个集合转换成冻结集合(不可修改)。
a = {1,2}
frozenset(a)  # 这样集合a就不能修改了
  • isinstance(o,t) 判断数据类型
a = {1,2}
frozenset(a)
isinstance(a,frozenset)  # 返回True
  • round(number,小数点后保留位数) 舎位。注意round不是四舍五入。

    注意,round()不是真正的四舍五入,当取舍位是0.5的时候,它会选择取舍后成为偶数的取舍方式(只适用于取舍后为整数或整十,整百的情况) 例:

print('0.5 =>', round(0.5))
print('1.5 =>', round(1.5))
print('2.5 =>', round(2.5))
print('3.5 =>', round(3.5))
print('4.5 =>', round(4.5))
print('4.67 =>', round(4.67,1))  # 取小数点后1位

执行结果:

0.5 => 0
1.5 => 2
2.5 => 2
3.5 => 4
4.5 => 4
4.67 => 4.7
  • sum(list) 纯数字的列表元素求和

  • zip() 把两个或多个列表拼到一起,并返回对应索引元素拼成的元组。只取最短的列表匹配。

  • 还有一部分面向对象的函数以后学习...

猜你喜欢

转载自www.cnblogs.com/py-xiaoqiang/p/11076869.html