Python小白学习之路(十六)—【内置函数一】

Stella981
• 阅读 467

Python小白学习之路(十六)—【内置函数一】

将68个内置函数按照其功能分为了10类,分别是:

  • 数学运算(7个)
    • abs()    divmod()    max()    min()    pow()    round()    sum()
  • 类型转换(24个)
    • bool()    int()    float()    complex()    str()    bytearray()
    • bytes()   memoryview()   ord()   chr()   bin()   oct()   hex()
    • tuple()   list()   dict()   set()   frozenset(  ) enumerate()
    • range()   iter()   slice()   supper()   object()
  • 序列操作(8个)
    • all()      any()   filter()   map()   next()   reversed()   sorted()   zip()
  • 对象操作(7个)
    • help() dir() id() hash() type() len() ascii() format() vars()
  • 反射操作(8个)
    • _import__() isinstance() issubclass() hasattr() getattr() setattr() delattr() callable()
  • 变量操作(2个)
    • globals() locals()
  • 交互操作(2个)
    • print() input()
  • 文件操作(1个)
    • open()
  • 编译执行(4个)
    • compile() eval() exec() repr()
  • 装饰器(3个)
    • property() classmethod() staticmethod()

一、数学运算类(7个)

abs()

  • Return the absolute value of the argument.取绝对值

    print(abs(-1)) #执行结果 1

divmod()

  • divmod(x, y) -> Return the tuple (x//y, x%y).返回商和余数

    print(divmod(5, 2)) #执行结果 (2, 1)

max()

  • 返回最大值

  • 处理的对象为可迭代对象

  • (相当于一个for循环取出每一个元素进行比较)

  • 不同类型之间是不能进行比较的

  • 每个元素进行比较时,是从每个元素的第一个位置开始依次比较

  • (如果一个位置分出大小,后面的位置可以不用进行比较便可以得出比较结果)

    #用法一: num_1 = [1,38,2,0,4,7] print(max(num_1))

    #用法二:传入对象为字典,默认比较的是字典的key age_dic={'age1':14, 'age2':3, 'age3':45, 'age1':18} print(max(age_dic)) print(max(age_dic.values())) # 比较的是字典的values #执行结果 age4 45

用法三:
任务:
将给定名单中年龄最大的找出来

people_list = [
{'name':'xhg','age':18},
{'name':'aaa','age':10},
{'name':'bbb','age':30},
{'name':'ccc','age':14},
]
print(max(people_list, key = lambda dic:dic['age']))
#执行结果
{'name': 'bbb', 'age': 30}

'''
#程序分析
#这段代码的理解 max(people_list, key = lambda dic:dic['age'],实际上进行了这样一个操作
ret = []
for item in people_list:
ret.append(item['age'])
print(max(ret))
'''

min()

  • 返回可迭代对象的元素中的最小值或者所有参数的最小值
  • 具体用法同max()函数

pow()

  • Equivalent to x**y (with two arguments) or x**y % z (with three arguments)

  • 两个参数,做幂运算

  • 三个参数,先做幂运算,再取余

    print(pow(2,3)) #执行结果 8 print(pow(2,3,3)) #执行结果 2

round()

  • 对浮点数进行四舍五入求值

  • 第二个参数为可选参数,如果不填默认取整,参数代表保留的位数

    print(round(3.1415926)) print(round(3.1415926, 3)) #执行结果 3 3.142

sum()

  • 对可迭代对象中的每个元素求和

  • 可迭代对象中的元素类型是数值

    print(sum([1, 2, 3, 4, 5])) #执行结果 15

二、类型转换(24个)

bool() 

  • 根据传入的参数的逻辑值创建一个新的布尔值

  • None '' () {} [] 0 ==>False

  • 其余 ==>True

    print(bool(None)) print(bool('xhg')) #执行结果 False True

int()

  • 根据传入的参数创建一个整数

    print(int('123')) #将字符串转化为整形 print(int(123.9)) #取整

    #执行结果 123 123

float()

根据传入的参数创建一个新的浮点数

print(float('123.78'))    #将字符串转化为浮点型
print(float(123))    #将整形转换成浮点型

#执行结果
123.78
123.0

complex()

  • 根据传入参数创建一个新的复数

  • 有两个参数:

  • 第一个参数是实部;第二个参数是虚部

  • 不填参数,默认输出为 0j

  • 只填一个参数 a,则输出 a + 0j

    print(complex()) print(complex(1)) print(complex(1, 2))

    #执行结果 0j (1+0j) (1+2j)

str()

  • 将目标参数转化为字符串

    print(str(123)) print(type(str(123))) print(str([1, 2, 3, 4, 'xhg'])) print(type(str([1, 2, 3, 4, 'xhg'])))

    #执行结果 123 <class 'str'> [1, 2, 3, 4, 'xhg'] <class 'str'>

bytearray()

  • 根据传入的参数创建一个新的字节数组

  • 可传入的参数:

    • 字符串(使用指定编码方式编码);bytearray()然后使用str.encode()将字符串转换为字节。
    • 如果它是一个整数,那么数组将具有这个大小,并将用null字节初始化。
    • 如果它是符合缓冲区接口的对象,则将使用对象的只读缓冲区来初始化字节数组。
    • 如果它是可迭代的,那么它必须是range 0 < = x < 256的整数的迭代,它被用作数组的初始内容

    a = bytearray('小伙郭', encoding = 'utf -8' ) #字符串需要指定编码方式 print(a, len(a)) b = bytearray('小伙郭', encoding = 'gbk' ) print(b, len(b)) c = bytearray([1,2,3,255]) #如果元素大于255,将会报错 print(c, len(c))

    #执行结果 bytearray(b'\xe5\xb0\x8f\xe4\xbc\x99\xe9\x83\xad') 9 bytearray(b'\xd0\xa1\xbb\xef\xb9\xf9') 6 bytearray(b'\x01\x02\x03\xff') 4

bytes()

  • 根据传入的参数创建一个新的不可变字节数组
  • 具体用法及传入的参数同函数bytearray()

ord()

chr()

  • 返回Unicode字符对应的整数

  • 返回整数所对应的Unicode字符

    print(ord('d')) print(chr(100)) #执行结果 100 d

bin()整数-->2进制字符串
oct()整数-->8进制数字符串
hex()整数-->16进制字符串


print(bin(5))
print(oct(10))
print(hex(15))

#执行结果
0b101
0o12
0xf

tuple()

  • 根据传入的参数创建一个新的元组

  • 传入的参数为空或者是可迭代对象

    print(tuple()) print(tuple('123456')) print(tuple([1, 2, 'a', 'b']))

    #执行结果 () ('1', '2', '3', '4', '5', '6') (1, 2, 'a', 'b')

list()

  • 根据传入的参数创建一个新的列表

  • 传入的参数为空或者是可迭代对象

    print(list()) print(list('123456')) print(list([1, 2, 'a', 'b']))

    #执行结果 [] ['1', '2', '3', '4', '5', '6'] [1, 2, 'a', 'b']

dict()

  • 根据传入的参数创建一个新的字典

  • 可以由下列四种方式传入参数:

    • 不传入参数,建立空字典
    • 通过映射函数创建字典
    • 通过键值对来创建字典
    • 通过可迭代对象来创建字典

    print(dict()) print(dict(zip(['key1', 'key2'],[1, 2]))) print(dict(key1 = 'a', key2 = 'b')) print(dict([['key1',1], ['key2','b']]))

    #执行结果 {} {'key1': 1, 'key2': 2} {'key1': 'a', 'key2': 'b'} {'key1': 1, 'key2': 'b'}

set()

  • 根据传入的参数创建一个新的集合

  • set() -> new empty set object

  • set(iterable) -> new set object

    print(set()) print(set('123456')) print(set([1,2,3,'a','b']))

    #执行结果 set() {'3', '1', '6', '2', '5', '4'} {1, 2, 3, 'b', 'a'}

frozenset()

  • 根据传入的参数创建一个新的不可变集合

    print(frozenset()) print(frozenset('123456'))

    frozenset() frozenset({'5', '1', '4', '3', '6', '2'})

range()

  • 根据传入的参数创建一个新的range对象

  • python3里面,需要通过for循环来创建range()每一个元素

  • range(a,b)-->左闭右开

  • range(stop) -> range object

  • range(start, stop[, step]) -> range object

    for item in range(5): print(item) for item in range(10, 15): print(item) for item in range(0, 100, 20): print(item)

    #执行结果 0 1 2 3 4 10 11 12 13 14 0 20 40 60 80

写在后面:

内置函数总结好多哦

今天眼睛看电脑时间太长了   累

明天继续总结吧

今天也就总结了一半的样子

最近发现之前的知识有些忘记了

需要返回去再看看了

开题报告写的不是很好  今天老师要求重新写

好好加油吧

明天就是周末啦   可以粗去吃好吃的  放松放松

更重要的  双11   买买买

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
2年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这