自学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-函数分类(内置函数补充)的更多相关文章

  1. day 14 三元运算符,列表字典推导式,递归,匿名函数,内置函数(排序,映射,过滤,合并)

    一.三元运算符 就是if.....else..... 语法糖 前提:if和else只有一条语句 #原始版 cmd=input('cmd') if cmd.isdigit(): print('1') e ...

  2. python协程函数、递归、匿名函数与内置函数使用、模块与包

    目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a. ...

  3. python基础之函数式编程、匿名函数、内置函数

    一 函数式编程 不修改外部状态. 模仿数学里得函数进行编程. 用函数编程写出得代码相当精简. 可读性比较差. 例子: y=2*x+1 x=1 def test(x): return 2*x+1 tes ...

  4. python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04

    递归 递归: # 函数在调用阶段直接或间接地又调用了自身 应用场景: # 将列表中的数字依次打印出来(循环的层数是你必须要考虑的点)   -->  l = [1, [2, [3, [4, [5, ...

  5. Python函数05/内置函数/闭包

    Python函数05/内置函数/闭包 目录 Python函数05/内置函数/闭包 内容大纲 1.内置函数(二) 2.匿名函数及内置函数(重要) 3.闭包 4.今日总结 5.今日练习 内容大纲 1.内置 ...

  6. day03 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...

  7. python基础知识15---三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    阅读目录 一 三元表达式.列表推导式.生成器表达式 二 递归与二分法 三 匿名函数 四 内置函数 五 阶段性练习 一. 三元表达式.列表推导式.生成器表达式 1 三元表达式 name=input('姓 ...

  8. day14(1)--递归、匿名函数、内置函数

    一.递归 定义:本质上是回溯和递推 回溯:询问答案的过程 递推:推出答案的过程 前提: 回溯到一个有结果的值开始递推 回溯与递推的条件要有规律 方式: 直接递归:自己调用自己 间接递归:通过别人来调用 ...

  9. python之三元表达式、列表推导、生成器表达式、递归、匿名函数、内置函数

    目录 一 三元表达式 二 列表推到 三 生成器表达式 四 递归 五 匿名函数 六 内置函数 一.三元表达式 def max(x,y): return x if x>y else y print( ...

随机推荐

  1. Ubuntu18.04安装netstat

    一.简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memb ...

  2. JEECG 3.7 Memory Leak

    JEECG 3.7 版本常见问题贴 - JEECG官方网站-企业级JAVA快速开发平台 - Powered by Discuz!http://www.jeecg.org/forum.php?mod=v ...

  3. 导出数据之CSV

    平常开发中,常见的需求就是导出数据为Excel,CSV格式的表格.所以,在此记录一下导出CSV数据的小方法 $fileName = 'demo.csv'; $data = [ ['id'=>1, ...

  4. JSON for-in 遍历

    (代码均以js代码示例) 1.可以使用 for-in 来循环对象的属性,使用中括号([])来访问属性的值: 这中方法便于一些在不确定有属性的情况下使用. var myObj = { "nam ...

  5. servlet ServletContext

    一.Servlet简介 1.什么是Servlet Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是 ...

  6. 如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?

    1.map和reduce的数量过多会导致什么情况?2.Reduce可以通过什么设置来增加任务个数?3.一个task的map数量由谁来决定?4.一个task的reduce数量由谁来决定? 一般情况下,在 ...

  7. socket基础编程-1

    server端和client端 1.server端: import socket server=socket.socket() server.bind(('localhost',8080)) serv ...

  8. python之路--初识html前端

    一.HTML文档结构 最基本的HTML文档: <!DOCTYPE html> <html lang="zh-CN"> #这个lang表示语言,zh-CN是中 ...

  9. Hibernate 配置文件hibernate.cfg.xml的详细

    <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式-->               <?xml ...

  10. Linux 下 解压zip文件出现乱码

    网上下载了一个文件,鼠标右键提取出来发现中文文件名全部乱码: 打开命令行  unzip -h  可以看到 -O 参数  制定编码解压: 比如: unzip -O CP936 xxx.zip