zoukankan      html  css  js  c++  java
  • python基础(十九、函数进阶

    16.函数进阶
    5)内置函数
    Python共69个内置函数,参考官网:
    https://docs.python.org/zh-cn/3/library/functions.html
    (1)匿名函数 lambda
    匿名函数不需要显示地定义函数名,语法:
    lambda 参数 :返回值

    打印数据长度

    (2)作用域相关 2个
    ①locals:以字典类型,返回当前作用域的变量和函数。参考:局部变量
    ②globals:以字典类型,返回全部全局变量。参考:全局变量

    (3)类型相关 17个
    与类型相关的指,把入参包装为某种类型,这样的内置函数包括:
    ①bool() # 布尔型
    ②int() # 整形
    ③str() # 字符型
    ④float() # 浮点型
    ⑤list() # 列表型
    ⑥tuple() # 元组型
    ⑦dict() # 字典型
    ⑧list() # 列表型
    ⑨set() # 集合类型
    ⑩frozenset() # 冻结集合类型,不允许修改,冻结后可哈希

    ⑪range() # 不可更改的序列
    ⑫zip() #拉链函数,可迭代对象聚合

    当数量不匹配时,遵循短板原则

    ⑬complex() # 复数型,复数由实部(有理数、无理数)和虚部(i2 = -1,i为虚数)构成
    ⑭bytes() # 字节型数组
    ⑮bytearray() # 字数数组
    ⑯object() # 无属性的根类
    ⑰slice() # 切片,返回一个slice对象,其中start, stop, step等都是只读的

    (4)数理统计相关 10个
    有的内置函数可以完成简单的数理统计工作,这样的内置函数包括:
    ①abs() # 绝对值
    ②len() #参数元素个数
    ③min() # 最小
    ④max() # 最大
    ⑤sum() # 求和,括号中要求填写可迭代对象

    ⑥pow() # 求次幂

    ⑦divmod() # (商,余数) 通常使用 //和%较多

    ⑧round() #四舍五入

    ⑨all() # 判断可迭代对象内,所有元素为true则为true
    print(all("abc")) # True
    print(all([0, 1, 2])) # False
    print(all(["呵呵", 1, 2])) # True
    ⑩any() # 判断可迭代对象内,至少一个元素为true则为true
    print(any("abc")) # True
    print(any([0, 1, 2])) # True
    print(any([0, False, ""])) # False

    (5)进制转换 6个
    有些内置函数可以帮助我们轻松实现进制转换,比如:
    ①chr() #unicode编码

    ②ord() #chr()反操作

    ③bin() #转化为ob开头的二进制字符

    ④oct() # 转化为0o开头的八进制字符

    ⑤hex() #转化为ox开头的十六进制字符

    ⑥ascii() #可打印表示对象,类似于 repr()
    ⑦repr()#官方提供的字符串表示形式

    “r”字符串原样输出

    “f”字符串格式化输出

    (6)面向对象相关 13个
    Python提供与对象属性相关的操作函数,它们为满足Python属性的动态调整提供了可能。
    ①setattr(object, name, value) #为对象设置属性
    ②delattr(object, name) # 删除命名的属性
    ③getattr(object,name) #获取属性的取值,如果对象无此属性,会抛异常
    ④getattr(object,name, 123) #即便无此属性,也不会抛异常,会返回123
    ⑤hasattr(object,name) # 判断name属性是否属于object
    ⑥isinstance(object, classinfo) #判断object是classinfo的实例吗,子类的实例也判定为True

    ⑦issubclass(class, classinfo) # 判断class是否为classinfo的子类

    ⑧super() #调用父类, 方法
    ⑨property() #特性相关,@property标记为属性
    ⑩type() #返回实例的类型(类)


    ⑪vars() # 返回对象的信息等
    ⑫classmethod() # 转化方法为类方法
    ⑬staticmethod() #方法是静态方法

    (7)迭代器相关 4个
    ①iter() #获取迭代器

    ②next() #下一个

    ③reversed() # 函数返回一个反转的迭代器

    ④enumerate() # 将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列(元组),同时列出数据和数据下标,一般用在 for 循环当中。

    for循环达到同样效果

    (8)排序sorted(重点)
    sorted()可以对可迭代的对象进行排序操作,返回一个排序好的列表。

    对于字符串数据,可以使用参数key自定义排序规则,key=函数名。首先,sorted打开可迭代对象,然后获取得到每一项数据,并把每一项数据传递给函数,sorted根据函数的返回值进行排序。

    可以使用匿名函数 lambda,简化代码:


    可以使用参数reverse=True,进行降序排列

    (9)筛选函数filter(重点)
    filter()函数用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成的迭代器。
    filter()语法:
    filter(function, iterable) # 其中function为函数(函数返回True则保留数据),iterable为需要过滤的可迭代序列

    (10)映射函数map(重点)
    map函数的原型为:map(function, iterable, ...) ,返回一个迭代器,在每一个可迭代对象的元素上应用function.

    (11)eval 函数
    ①eval()函数
    功能十分强大:将字符串 当成 有效的表达式 来求值 并 返回计算结果

    ②案例 - 计算器
    需求:
    (a)提示用户输入一个 加减乘除混合运算
    (b)返回计算结果

    ③数据转换

    ④不要滥用 eval
    在开发时千万不要使用 eval 直接转换 input 的结果

    (12)其他 13个
    ①字符串类型代码的执行:
    (a)exec() #执行字符串类型的代码。危险,尽量不要暴露给用户

    (b)compile() #将一个字符串编译为字节代码。危险,尽量不要暴露给用户

    ②输入输出
    (c)input() #接收键盘输入数据,返回字符串。
    (d)print() #打印,参考:print增强

    ③内存相关:
    (e)hash() #返回对象的哈希码
    python的字符串hash算法并不是直接遍历字符串每个字符去计算hash,而是会有一个secret prefix和一个secret suffix,可以认为相当于是给字符串加盐后做hash,可以规避一些规律输入的情况。显然这个secret前后缀的值会直接影响计算结果,而且它有一个启动时随机生成的机制,在3.x中修改了默认行为,如果你不配置环境变量,则默认是随机一个前后缀值,这样每次启动都会不同。

    (f)id() #返回一个对象的标识

    ④其它:
    (g)open() #打开文件

    (h)help() #查看帮助;在命令窗口中经常被使用

    在pycharm中Ctrl+单击可以打开帮助信息

    (i)callable() #判断对象是否可调用

    (j)dir() #查看对象的方法和属性;:

    (k)format() #对象格式化



    (l)memoryview() #函数与内存视图相关;
    (m)breakpoint() #调试相关

  • 相关阅读:
    爬虫——网页解析利器--re & xpath
    机器学习——决策树
    爬虫——控制台抓包和requests.post()发送请求
    爬虫——爬取Ajax动态加载网页
    爬虫——urllib爬虫模块
    从零搭建一个SpringCloud项目之Zuul(四)
    从零搭建一个SpringCloud项目之hystrix(三)
    从零搭建一个SpringCloud项目之Eureka(一)
    SpringBoot内置Tomcat启动的源码分析
    初始化Bean的扩展InitializingBean和BeanPostProcessor
  • 原文地址:https://www.cnblogs.com/bdzxh/p/14069194.html
Copyright © 2011-2022 走看看