自学Python3.3-函数分类(内置函数补充)
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django
自学Python3.3-函数分类(内置函数补充)
内置函数,自定义函数,匿名函数
内置函数(python3.x)
一、作用域相关
1.1 globals() 返回全局作用域内所有
1.2 locals
() 返回当前作用域内所有
- 函数功能返回当前作用域内的局部变量和其值组成的字典,与globals函数类似(返回全局变量)
- 可用于函数内
- 返回的字典集合不能修改
二、迭代器/生成器相关
2.1 next() next(迭代器) #相等于 迭代器.__next__()
- 函数必须接收一个可迭代对象参数,每次调用的时候,返回可迭代对象的下一个元素。如果所有元素均已经返回过,则抛出StopIteration异常。
- 函数可以接收一个可选的default参数,传入default参数后,如果可迭代对象还有元素没有返回,则依次返回其元素值,如果所有元素已经返回,则返回default指定的默认值而不抛出
StopIteration
异常。
2.2 iter() 迭代器 = iter(可迭代的) #相等于 迭代器 = 可迭代的.__iter__()
- 函数功能返回一个迭代器对象。
- 当第二个参数不提供时,第一个参数必须是一个支持可迭代协议(即实现了__iter__()方法)的集合(字典、集合、不可变集合),或者支持序列协议(即实现了__getitem__()方法,方法接收一个从0开始的整数参数)的序列(元组、列表、字符串),否则将报错。
- 当第二个参数sentinel提供时,第一个参数必须是一个可被调用对象。创建的迭代对象,在调用__next__方法的时候会调用这个可被调用对象,当返回值和sentinel值相等时,将抛出StopIteration参数必须是一个可被异常, 终止迭代。
2.3 range() 迭代器 = iter(可迭代的) #相等于 迭代器 = 可迭代的.__iter__()
- range函数用于生成一个range对象,range类型是一个表示整数范围的类型。
- 可以直接传入一个结束整数来初始化一个range类型,默认起始值为0(包含0).结束整数可以大于0,也可以小于等于0,但是小于等于0的时候生成的range对象实际是不包含任何元素的。
- 可以传入一个起始整数和一个结束整数来初始化一个range类型,生成的range类型包含起始整数(包含),和结束整数(不包含)之间的所有整数。
- 传入了起始整数和结束整数,还可以同时传入一个步进值来初始化一个range类型,生成的range类型包含起始整数(包含),和结束整数(不包含)之间的以步进值筛选后的整数。
- 初始化range类型时起始整数和结束整数,遵循的是左臂右开原则,即包含起始整数,但不包含结束整数。
- range接收的参数都必须是整数,不能是浮点数等其它数据类型。
- range实际上是一个不可变的序列类型,可以对它进行取元素、切片等序列操作,但是不能对其中元素修改值。
- range(10)
- range(1,11)
- range(1,11,2)
range是一个可迭代的,但不是迭代器。
三、和反射相关
四、和面向对象相关
五、和基础数据类型相关(其中包含两类:和数字相关、和数据结构相关)
数字——数据类型相关:bool,int,float,complex
数字——进制转换相关:bin,oct,hex
数字——数学运算:abs,divmod,min,max,sum,round,pow
序列——列表和元组相关的:list和tuple
序列——相关内置函数:reversed,slice
序列——字符串相关的:str,format,bytes,bytearry,memoryview,ord,chr,ascii,repr
数据集合——字典:dict
数据集合——集合:set,frozenset
相关内置函数:len,sorted,enumerate,all,any,zip,filter,map
六、 其他的
6.1 字符串类型代码的执行
6.1.1 eval() 将字符串类型的代码执行并返回结果
- print(eval('1+2+3+4'))
6.1.2 exec()将自字符串类型的代码执行
- print(exec("1+2+3+4"))
- exec("print('hello,world')")
6.1.3 compile 将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。
参数说明:
- 参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。
- 参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。
- 参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为'single'。
流程语句使用exec()
简单求值表达式用eval()
6.2 输入输出相关
6.2.1 input() 输入
6.2.2 print() 输出
- def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
- """
- print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
- file: 默认是输出到屏幕,如果设置为文件句柄,输出到文件
- sep: 打印多个值之间的分隔符,默认为空格
- end: 每一次打印的结尾,默认为换行符
- flush: 立即把内容输出到流文件,不作缓存
- """
- f = open('tmp_file','w')
- print(123,456,sep=',',file = f,flush=True)
举例子:打印进度条
- import time
- for i in range(0,101,2):
- time.sleep(0.1)
- char_num = i//2 # 打印多少个'*'
- per_str = '\r%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s'%(i,'*'*char_num)
- print(per_str,end='', flush=True) # \r 可以把光标移动到行首但不换行
6.3 内存相关
6.3.1 id(o) o是参数,返回一个变量的内存地址
6.3.2 hash(o) o是参数,返回一个可hash变量的哈希值,不可hash的变量被hash之后会报错。hash函数会根据一个内部的算法对当前可hash变量进行处理,返回一个int数字。
每一次执行程序,内容相同的变量hash值在这一次执行过程中不会发生改变。
6.4 文件操作相关
open() 打开一个文件,返回一个文件操作符(文件句柄)
操作文件的模式有r,w,a,r+,w+,a+ 共6种,每一种方式都可以用二进制的形式操作(rb,wb,ab,rb+,wb+,ab+),可以用encoding指定编码.
6.5 模块操作相关
__import__导入一个模块
- import time # 导入时间模块
6.6 帮助
在控制台执行help()进入帮助模式。可以随意输入变量或者变量的类型。输入q退出
或者直接执行help(o),o是参数,查看和变量o有关的操作。
6.7 和调用相关
callable(o),o是参数,看这个变量是不是可调用。如果o是一个函数名,就会返回True。
- 方法用来检测对象是否可被调用,可被调用指的是对象能否使用()括号的方法调用;
- 可调用对象,在实际调用也可能调用失败;但是不可调用对象,调用肯定不成功;
- 类对象都是可被调用对象,类的实例对象是否可调用对象,取决于类是否定义了__call__方法。
- def func():pass
- print(callable(func)) #参数是函数名,可调用,返回True
- print(callable(123)) #参数是数字,不可调用,返回False
6.8 查看参数所属类型的所有内置方法
dir()默认查看全局空间内的属性,也接受一个参数,查看这个参数内的方法或变量。
- print(dir(list)) #查看列表的内置方法
- print(dir(int)) #查看整数的内置方法
.....
自学Python3.3-函数分类(内置函数补充)的更多相关文章
- day 14 三元运算符,列表字典推导式,递归,匿名函数,内置函数(排序,映射,过滤,合并)
一.三元运算符 就是if.....else..... 语法糖 前提:if和else只有一条语句 #原始版 cmd=input('cmd') if cmd.isdigit(): print('1') e ...
- python协程函数、递归、匿名函数与内置函数使用、模块与包
目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a. ...
- python基础之函数式编程、匿名函数、内置函数
一 函数式编程 不修改外部状态. 模仿数学里得函数进行编程. 用函数编程写出得代码相当精简. 可读性比较差. 例子: y=2*x+1 x=1 def test(x): return 2*x+1 tes ...
- python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04
递归 递归: # 函数在调用阶段直接或间接地又调用了自身 应用场景: # 将列表中的数字依次打印出来(循环的层数是你必须要考虑的点) --> l = [1, [2, [3, [4, [5, ...
- Python函数05/内置函数/闭包
Python函数05/内置函数/闭包 目录 Python函数05/内置函数/闭包 内容大纲 1.内置函数(二) 2.匿名函数及内置函数(重要) 3.闭包 4.今日总结 5.今日练习 内容大纲 1.内置 ...
- day03 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...
- python基础知识15---三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数
阅读目录 一 三元表达式.列表推导式.生成器表达式 二 递归与二分法 三 匿名函数 四 内置函数 五 阶段性练习 一. 三元表达式.列表推导式.生成器表达式 1 三元表达式 name=input('姓 ...
- day14(1)--递归、匿名函数、内置函数
一.递归 定义:本质上是回溯和递推 回溯:询问答案的过程 递推:推出答案的过程 前提: 回溯到一个有结果的值开始递推 回溯与递推的条件要有规律 方式: 直接递归:自己调用自己 间接递归:通过别人来调用 ...
- python之三元表达式、列表推导、生成器表达式、递归、匿名函数、内置函数
目录 一 三元表达式 二 列表推到 三 生成器表达式 四 递归 五 匿名函数 六 内置函数 一.三元表达式 def max(x,y): return x if x>y else y print( ...
随机推荐
- CMMI摘要
CMMI_百度百科https://baike.baidu.com/item/CMMI CMMI分为哪几个等级?CMMI等级介绍_百度经验https://jingyan.baidu.com/articl ...
- 分布式文件系统FastDFS
fastdfs_百度百科https://baike.baidu.com/item/fastdfs/5609710 用FastDFS一步步搭建文件管理系统 - bojiangzhou - 博客园http ...
- js判断一个对象{}是否为空对象,没有任何属性
// js如何判断一个对象{}是否为空对象,没有任何属性 if (typeof model.rows === "object" && !(model.rows in ...
- css太极
自己用css做的太极,留个纪念. 用css做太极有很多种实现方法,我这种大概是最简单的了吧,因为div用得太多了,哈哈. 高级一点的应该是用伪类:before和:after去减少div的用量(手动滑稽 ...
- css实现三栏自适应布局(两边固定,中间自适应)以及优缺点
方法一:绝对定位(absolute + margin) 原理:给左右两边的元素设置absolute,这样左右两边的元素脱离标准文档流的控制,中间的元素自然会上来,然后给中间的元素设置margin留出左 ...
- ::class 意思
自 PHP 5.5 起,关键词 class 也可用于类名的解析.使用 ClassName::class 你可以获取一个字符串,包含了类 ClassName 的完全限定名称.这对使用了 命名空间 的类尤 ...
- 如何让pl/sql developer记住密码,实现快速登录
前两天,有同事使用plsql的时候,切换数据库的时候需要不断的重复输入密码,这样太麻烦了. 下面,我这里说下如何的实现plsql不需要输入密码就能快速登录的方法: 1.一开始登录,首先像往常那样输入密 ...
- 设置SQLServer数据库内存
需要设置SQLServer数据库的内存配置.登录数据库,这里使用的是SQLServer2008,右键点击最上方的服务器名,在弹出的菜单中,点击属性] 打开服务器属性窗口.默认显示的是第一项[常规]内容 ...
- Java多线程之synchronized线程锁
package org.study2.javabase.ThreadsDemo.sync; /** * @Auther:GongXingRui * @Date:2018/9/18 * @Descrip ...
- 学习Linux系统的态度及技巧
Linux作为一种简单快捷的操作系统,现在被广泛的应用.也适合越来越多的计算机爱好者学习和使用.但是对于Linux很多人可能认为很难,觉得它很神秘,从而对其避而远之,但事实真的是这样么?linux真的 ...