函数和常用模块【day04】:内置函数(九)

时间:2022-09-08 11:20:29

一、11-20

11、ord(c)

功能:根据字符,找到对应的ascii值

1
2
>>> ord('a')
97

12、classmethod(function)

功能:类方法,这个到后续谈到类的时候再说。

13、compile(sourcefilenamemodeflags=0dont_inherit=Falseoptimize=-1)

功能:用于把代码编译的一个过程,这个基本用不到

1
2
3
4
>>> code = """1+3/2*6"""  
>>> py_object = compile(code,'','eval')  #把代码转换为字符串
>>> eval(py_object)  #执行
10.0

14、complex([real[, imag]])

功能:返回一个复数,我们几乎用不到。

1
2
>>> complex('1+2j')
(1+2j)

15、delattr(objectname)

功能:类那边使用的,先不care。

16、dict(**kwarg)、dict(mapping**kwarg)、dict(iterable**kwarg)

功能:返回一个字典

1
2
3
4
5
6
7
8
>>> dict()  #定义一个字典
{}
>>> dict(name='zhangqigao',age=18)   #传入非固定关键字参数
{'name''zhangqigao''age'18}
>>> dict([('name','zhangqigao'),('age',18)])   #传入一个列表
{'name''zhangqigao''age'18}
>>> dict([['name','zhangqigao'],['age',18]])    #传入一个列表
{'name''zhangqigao''age'18}

17、dir([object])

功能:看一个对象有哪些方法

1
2
3
4
5
6
7
8
>>> name = []
>>> dir(name)  #显示name下的所有的方法
['__add__''__class__''__contains__''__delattr__''__delitem__''__dir__''__doc__',
'__eq__''__format__''__ge__''__getattribute__''__getitem__''__gt__''__hash__',
'__iadd__''__imul__''__init__''__iter__''__le__''__len__''__lt__''__mul__''__ne__',
'__new__''__reduce__''__reduce_ex__''__repr__''__reversed__''__rmul__',
'__setattr__''__setitem__''__sizeof__''__str__''__subclasshook__''append''clear',
'copy''count''extend''index''insert''pop''remove''reverse''sort']

18、divmod(a,b)

功能:地板除,获得一个元组,元组第一个元素是商,第二个元素是余数。

1
2
>>> divmod(5,2)
(21)    #2是商,1是余数

19、enumerate(iterable,start=0)

功能:获取一个列表,列表中的每个元素都是一个元组,元组的第一个数是iterable的索引,第二个数是iterable的元素。

1
2
3
4
5
>>> seasons = ['Spring''Summer''Fall''Winter']
>>> list(enumerate(seasons))
[(0'Spring'), (1'Summer'), (2'Fall'), (3'Winter')]
>>> list(enumerate(seasons, start=1))
[(1'Spring'), (2'Summer'), (3'Fall'), (4'Winter')]

20、eval(expressionglobals=Nonelocals=None)

功能:把字典类型的字符串变成字典,把一个整数类型的字符变成int类型,或者加减乘除这种简单转换成表达式。

1
2
3
4
>>> eval('1')  #字符类型转换成int类型
1
>>> eval("1+3/2*6")   #字符串转换为表达式
10.0

二、21-25

21、exec(object[, globals[, locals]])

功能:有语句的和复杂的语句的字符串转换成表达式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
code = '''
def timmer(func):  #timmer(test1) func=test1
    def deco(*args,**kwargs):
        res = func(*args,**kwargs)   #run test1()
        return res
    return deco
 
@timmer
def test1():
    print("in the test1")
    return "from the test1"
 
res = test1()
print(res)
'''
 
exec(code) 
 
#输出
in the test1
from the test1

22、filter(functioniterable)

功能:对于序列中的元素进行筛选,最终获取符合条件的序列

函数和常用模块【day04】:内置函数(九)

def f1(args):
result = []
for item in args:
if item > 22:
result.append(item)
return result li = [11, 22, 33, 44, 55]
ret = f1(li)
print(ret) filter(函数,可迭代的对象)
def f2(a):
if a>22:
return True
li = [11, 22, 33, 44, 55]
filter内部,循环第二个参数
result = []
for item in 第二个参数:
r = 第一个参数(item)
if r :
result(item)
return result
filter ,循环循环第二个参数,让每个循环元素执行 函数,如果函数返回值True,表示元素合法
ret = filter(f2, li)
print(list(ret)) filter,内部循环,参数比较 自动return
f1 = lambda a: a > 30 ret = f1(10)
print(ret) li = [11, 22, 33, 44, 55]
result = filter(lambda a: a > 33, li)
print(list(result))

23、map(functioniterable)

函数和常用模块【day04】:内置函数(九)

功能:遍历序列,对序列中每个元素进行操作,最终获取新的序列。

i = [11, 22, 33, 44, 55]

 map(函数,可迭代的对象(可以for循环的东西))
def f2(a):
return a + 100 result = map(f2, li)
result = map(lambda a: a + 200, li)
print(list(result)) filter # 函数返回True,将元素添加到结果中
map # 将函数返回值添加到结果中 def f1(args):
result = []
for i in args:
result.append(100+i) return result
r = f1(li)
print(list(r))

24、reduce(function,iterable)

功能:把一组可迭代序列通过function函数操作,元素之间相加或者相乘操作。

1
2
3
4
5
6
7
>>> from functools import reduce
>>> res = reduce(lambda x,y:x+y,range(10))  #x+y的值赋给x,rang(10)中的每个元素赋给y
>>> res
45
>>> res = reduce(lambda x,y:x*y,range(1,10)) #x*y的值赋给x,rang(10)中的每个元素赋给y
>>> res
362880

25、float([x])

功能:把一个浮点类型的字符串转换为浮点类型的数据。

1
2
3
4
5
6
7
8
9
10
>>> float('+1.23')
1.23
>>> float('   -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf

三、26-35

26、format(value[, format_spec])

功能:格式话字符串,详细使用:

27、frozenset([iterable])

功能:把集合变成一个不可变的集合

1
2
3
4
5
6
7
8
9
10
>>> res = frozenset([1,2,3,4,3])
>>> res
frozenset({1234})   #去重的,不可变的集合
>>> dir(res)   #没有可变的方法
['__and__''__class__''__contains__''__delattr__''__dir__''__doc__''__eq__',
'__format__''__ge__''__getattribute__''__gt__''__hash__''__init__''__iter__''__le__',
 '__len__''__lt__''__ne__''__new__''__or__''__rand__''__reduce__''__reduce_ex__',
'__repr__''__ror__''__rsub__''__rxor__''__setattr__''__sizeof__''__str__''__sub__',
'__subclasshook__''__xor__''copy''difference''intersection''isdisjoint''issubset',
'issuperset''symmetric_difference''union']

注:set()是可变的

28、getattr(objectname[, default])

功能:这边是类那边的,后续再讲。

29、globals()

功能:返回当前这个python文件中的所有变量的key-value,变量是key,值是value

1
2
3
4
5
6
7
print(globals())
 
#输出
{'__spec__'None'__name__''__main__''__file__': 'D:/PycharmProjects/pyhomework
/day4/内置函数/内置函数.py', '__doc__': None, '__package__': None, '__loader__':
<_frozen_importlib_external.SourceFileLoader object at 0x0000000000695B00>,
'__cached__'None'__builtins__': <module 'built

注:可以判断一个文件中的变量是否存在,而globals()只能打印全局变量

30、hash(object)

功能:反射出一个对象的对应的hash值。

1
2
3
4
5
6
>>> hash('zhangqigao')
2313972277536963491
>>> hash(255)
255
>>> hash('a')
6806508886604307842

这个有什么用呐?

先看下面的图:

函数和常用模块【day04】:内置函数(九)

看上面的图我们知道,如果一张表中5百万个用户信息,以我们现在的知识,只能用for循环去查找,那样的话,效率会很低。那我们怎么办呢?我们可以这样,就是把每一个姓名对应有一对应的值,然后通过对应的key值去定位,key值是放在一个列表中,当我们去查找某个key值时,可以折半查找,这样大大减少了查找时间,提高效率,这种也叫二分法查找,后面会有对应的博客专门写这一块的。

内置函数三

31、help([object])

功能:显示对象的帮助信息

1
2
3
4
5
6
7
8
9
10
11
>>> res = []  #定义一个列表
>>> help(res)   #打印帮助信息
Help on list object:
 
class list(object)
 |  list() -> new empty list
 |  list(iterable) -> new list initialized from iterable's items
 
 |  Methods defined here:
 
 .....

32、hex(x)

功能:把一个数字转成16进制

1
2
3
4
>>> hex(255)
'0xff'
>>> hex(10)
'0xa'

33、id(object)

功能:返回对象的内存地址

1
2
>>> id('zhangqigao')
50993136   #'zhangqigao'这个字符串的内存地址

34、input([prompt])

功能:输入字符串

1
2
3
4
>>> s = input('--> '
--> Monty Python's Flying Circus  #输入的内容
>>> s 
"Monty Python's Flying Circus"

35、int(x)

功能:把其他数据类型强制转换成int类型

1
2
>>> int('10')
10

函数和常用模块【day04】:内置函数(九)的更多相关文章

  1. 人生苦短之我用Python篇(深浅拷贝、常用模块、内置函数)

    深浅拷贝 有时候,尤其是当你在处理可变对象时,你可能想要复制一个对象,然后对其做出一些改变而不希望影响原来的对象.这就是Python的copy所发挥作用的地方. 定义了当对你的类的实例调用copy.c ...

  2. 学习Python函数笔记之二(内置函数)

    ---恢复内容开始--- 1.内置函数:取绝对值函数abs() 2.内置函数:取最大值max(),取最小值min() 3.内置函数:len()是获取序列的长度 4.内置函数:divmod(x,y),返 ...

  3. Python函数04&sol;生成器&sol;推导式&sol;内置函数

    Python函数04/生成器/推导式/内置函数 目录 Python函数04/生成器/推导式/内置函数 内容大纲 1.生成器 2.推导式 3.内置函数(一) 4.今日总结 5.今日练习 内容大纲 1.生 ...

  4. Day05&colon;装饰器,三元表达式,函数的递归,匿名&sol;内置函数,迭代器,模块,开发目录

    上节课复习:1.函数的对象    函数可以被当作数据取处理2.函数嵌套    嵌套调用:在调用一个函数时,函数体代码又调用了其他函数    嵌套定义:在一个函数内部又定义了另一个函数 def foo( ...

  5. python基础编程&colon; 函数示例、装饰器、模块、内置函数

    目录: 函数示例 装饰器 模块 内置函数 一.函数示例: 1.为什么使用函数之模块化程序设计: 不使用模块程序设计的缺点: 1.体系结构不清晰,可主读性差: 2.可扩展性差: 3.程序冗长: 2.定义 ...

  6. 第三天 函数 三元运算 lambda表达式 内置函数 文件操作

    面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...

  7. python函数(6):内置函数和匿名函数

    我们学了这么多关于函数的知识基本都是自己定义自己使用,那么我们之前用的一些函数并不是我们自己定义的比如说print(),len(),type()等等,它们是哪来的呢? 一.内置函数 由python内部 ...

  8. python---基础知识回顾(一)&lpar;引用计数,深浅拷贝,列表推导式,lambda表达式,命名空间,函数参数逆收集,内置函数,hasattr&period;&period;&period;&rpar;

    一:列表和元组(引用计数了解,深浅拷贝了解) 序列:序列是一种数据结构,对其中的元素按顺序进行了编号(从0开始).典型的序列包括了列表,字符串,和元组 列表是可变的(可以进行修改),而元组和字符串是不 ...

  9. Day3 - Python基础3 函数基本、递归函数、内置函数

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

  10. Python函数篇(3)-内置函数、文件处理

    1.内置函数 上一篇文章中,我重点写了reduce.map.filter3个内置函数,在本篇章节中,会补充其他的一些常规内置函数,并重点写max,min函数,其他没有说明的函数,会在后面写到类和面向对 ...

随机推荐

  1. elasticsearch rpm 安装

    参考:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-repositories.html Dow ...

  2. 详解Bootstrap面板组件

    面板组件主要作用是用来处理一些其他组件无法完成的功能,在不同的版本中具有不同的源码: LESS:panels.less SASS:_panels.scss 基础面板非常简单,就是一个div容器中运用了 ...

  3. spring官方案例程序

    https://github.com/spring-projects/spring-data-book https://github.com/spring-projects 包含其他相关的应用程序

  4. Java基础-事件处理

  5. 设计模式之Inheritance versus Parameterized Types 继承和参数化类型

    Another (not strictly object-oriented)technique for reusing functionality is through parameterized t ...

  6. Unity3d开发IOS游戏 基础

    Unity3d开发IOS游戏 基础 @阿龙 -  649998群 1.先说明两个问题,我在WIN7下面的U3D里面,用了雅黑字体,但是导出为ios后,字体就看不见了,这是为什么呢?这是需要在MAC下找 ...

  7. 【Android进阶】使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果

    最近闲来无事,在网上寻找源代码看,突然发现了一个国内技术牛人开发的快速开发框架Andbase,花了一天时间研究了下源码和怎么使用,现将开发常见的侧滑栏和滑动标签页组合效果的使用介绍个大家,希望可以减少 ...

  8. Select &ast; 一定不走索引是否正确?

    Select * 一定不走索引是否正确? 走索引指的是:SQL语句的执行计划用到了1.聚集索引查找  2.索引查找  ,并且查询语句中需要有where子句 根据where子句的过滤条件,去聚集索引或非 ...

  9. 初学strurs基础

    Struts2基础学习总结 Struts 2是在WebWork2基础发展而来的. 注意:struts 2和struts 1在代码风格上几乎不一样. Struts 2 相比Struts 1的优点: 1. ...

  10. SQL发音考(搜寻SQL-86标准)

    据我观察,中国的开发者创造了一种独特的SQL发音:/'sɜːkl/,既好听,又好读,挺好的.但是今年我开始做数据库相关的工作,作为一个专业人士,决定对SQL发音进行一些考证. 直接说结论吧,很多人沿用 ...