Python基础12-常用的内置函数
abs
取绝对值,数学上的绝对值
print(abs(-1))
all
接收一个可迭代参数。如果里面有一个False的元素,那么返回值就是False,否则返回True,类似逻辑“与”。如果可迭代参数本身为空,那么返回True。需要记住什么是False的元素,False本身、数字0、空字符串""、None是False的。
f = list()
f.append([1, 0, "mysql"])
f.append([1, "", "mysql"])
f.append([1, None, "mysql"])
f.append({0: "mysql", 1: "oralce"})
f.append("")
f.append([])
f.append({})for i in f:print(i, all(i))pass
# [1, 0, 'mysql'] False
# [1, '', 'mysql'] False
# [1, None, 'mysql'] False
# True 元素本身是空的,那么返回True
# [] True# [1, 0, 'mysql'] False 0是False
# [1, '', 'mysql'] False ''是False
# [1, None, 'mysql'] False None是False
# {0: 'mysql', 1: 'oralce'} False
# True 元素本身是空的,那么返回True
# [] True 元素本身是空的,那么返回True
# {} True 元素本身是空的,那么返回True
any
接收一个可迭代参数。如果里面有一个True的元素,那么返回值就是True,所有元素都是False则返回False,类似逻辑“或”。如果可迭代参数本身为空,那么返回False。
f = list()
f.append([1, 0, "mysql"])
f.append([1, "", "mysql"])
f.append([1, None, "mysql"])
f.append({0: "mysql", 1: "oralce"})
f.append("")
f.append([])
f.append({})for i in f:print(i, any(i))pass# [1, 0, 'mysql'] True
# [1, '', 'mysql'] True
# [1, None, 'mysql'] True
# {0: 'mysql', 1: 'oralce'} True
# False 元素本身是空的,那么返回False
# [] False 元素本身是空的,那么返回False
# {} False 元素本身是空的,那么返回False
bin、oct、hex
转换为二进制、八进制、十六进制
print(bin(17), oct(17), hex(17))
# 0b10001 0o21 0x11
bool
判断布尔类型。只需要记住什么是False,除此之外都是True。
False本身、数字0、各类空值(None、""、[]、{})是False。
# 以下都是False
print(bool(False))
print(bool(0))
print(bool(None))
print(bool(""))
print(bool([]))
print(bool({}))
bytes
将字符串转换为字节,可以用于存储和网络传输。用什么编码,就用什么解码。
s1 = '你好'
# unicode编码每个字符3个字节 b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(bytes(s1, encoding='utf-8'))
print(bytes(s1, encoding='utf-8').decode(encoding='utf-8'))
# gbk编码每个字符2个字节 b'\xc4\xe3\xba\xc3'
print(bytes(s1, encoding='gbk'))
print(bytes(s1, encoding='gbk').decode(encoding='gbk'))
chr、ord
chr传入数字,转换为对应的字符。ord与chr相反的操作,入参是字符,返回的是字符对应的数字。
# 0,A,a
print(chr(48), chr(65), chr(97), sep=',')
print(chr(0x30), chr(0x41), chr(0x61), sep=',')
# 48,65,97,36,27721
print(ord('0'), ord('A'), ord('a'), ord('$'), ord('汉'), sep=',')
dir
打印内置方法。
print(dir(all))
# ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
divmod
x, y = divmod(37, 5)
print(x, y) # 商7 余2
enumerate
enumerate 接收一个可迭代的参数,返回一个迭代器,迭代器每个元素是索引位置和元素组成的元组。可以再多传入一个参数,指定索引位置的起始值。这样可以直接获取到迭代器元素的索引位置,这是推荐使用的办法
# enumerate 接收一个可迭代的参数,返回一个迭代器,每个元素是索引位置和元素
# 可以再多传入一个参数,指定索引位置的起始值
# 这样可以直接获取到迭代器元素的索引位置,这是推荐使用的办法
a = ['mysql', 'oracle', 'db2']
e = list(enumerate(a))
print(e)
# [(0, 'mysql'), (1, 'oracle'), (2, 'db2')]
for i, item in enumerate(a):print(i, item)pass
# 0 mysql
# 1 oracle
# 2 db2
for i, item in enumerate(a, 7):print(i, item)pass
# 7 mysql
# 8 oracle
# 9 db2
eval
eval的一大用处是提取字符串为某个数据类型。比如,将字符串提取成字典。
dic = {'os': 'linux', 'db': 'mysql'}
dic_str = str(dic)
d = eval(dic_str)
eval的另一个用处是直接计算字符串形式表达式的值。
express = '1+2*3-8/2'
print(eval(express)) # 3.0
hash
计算hash值。可hash的是不可变的数据类型。不可hash的是可变的数据类型。
s = 'mysql'
print(hash(s)) # -5554907091058110952
print(hash(s)) # -5554907091058110952
print(hash(s)) # -5554907091058110952
s = 'oracle'
print(hash(s)) # 6847068001075588286
help
打印方法的使用方法。我们打印all的使用发放看看。
print(help(all))
# Help on built-in function all in module builtins:
#
# all(iterable, /)
# Return True if bool(x) is True for all values x in the iterable.
#
# If the iterable is empty, return True.
#
# None
globals、locals
globals打印全局变量。locals打印当前级别的局部变量。
os = 'linux'def test():db = 'mysql'print(globals())print(locals())passtest()
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000000000640940>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/dev/basic/day16-built-in.py', '__cached__': None, 'os': 'linux', 'test': <function test at 0x00000000006251F0>}
# {'db': 'mysql'}
max、min、sorted
字面意思,最大值、最小值、排序。
max、min、sorted的高级用法。可以自己指定比较大小的规则。
首先,了解max和min的比较大小逻辑。遍历传入的可迭代参数,逐个比较大小,得到最值。
其次,了解比较大小逻辑。数字比较大小。可迭代的元素,逐个迭代比较大小,比如字符串按照字符串的编码规则比较大小,比如元组先比较第一个元素,比较不出大小再比较下一个位置的元素。
最后,max和min的可选参数key。key可以指定一个取数逻辑,也就是被比较的是什么,也就是这个key取出的数去比较大小。比如,我们可以指定长度大的字符串大。也可以指定个位数字大的数字大。也可以指定比较的是字典中的年龄age。等等……
排序函数sorted本质是比较大小,用法类似。
s = ['mysql', 'oracle', 'db2', 'database']
# 字符串比较大小,逐个比较字符的编码大小
# 最大的是oracle,最小的是database
# 排序按照字母序 ['database', 'db2', 'mysql', 'oracle']
print(max(s))
print(min(s))
print(sorted(s))
# 指定长度大的字符串大
# 最大的是database,最小的是db2
# 排序按照长度排序 ['db2', 'mysql', 'oracle', 'database']
print(max(s, key=lambda x: len(x)))
print(min(s, key=lambda x: len(x)))
print(sorted(s, key=lambda x: len(x)))# 元组类似,先比较第一个元素,相等再比较后面的元素
server = [('linux', 'mysql'),('linux', 'oracle'),('aix', 'oracle'),
]
print(max(server))n = [1213, 345, 232, 39]
# 数字最大1213,最小39,排序[39, 232, 345, 1213]
print(max(n))
print(min(n))
print(sorted(n))
# 个位数大的数字大,最大39,最小232,排序[232, 1213, 345, 39]
print(max(n, key=lambda x: x % 10))
print(min(n, key=lambda x: x % 10))
print(sorted(n, key=lambda x: x % 10))p = [{'name': 'Able', 'age': 18},{'name': 'Fox', 'age': 298},{'name': 'Easy', 'age': 17},{'name': 'Dog', 'age': 36},
]
# 找出年龄最大的人的名字# 先找出年龄最大的人的元素 {'name': 'Fox', 'age': 298}
# 先找出年龄最小的人的元素 {'name': 'Easy', 'age': 17}
print(max(p, key=lambda x: x['age']))
print(min(p, key=lambda x: x['age']))
# 再在年龄最大的人的元素里面取出名字,Fox
# 再在年龄最大的人的元素里面取出名字,Easy
print(max(p, key=lambda x: x['age'])['name'])
print(min(p, key=lambda x: x['age'])['name'])
# 按照年龄排序
# [
# {'name': 'Easy', 'age': 17},
# {'name': 'Able', 'age': 18},
# {'name': 'Dog', 'age': 36},
# {'name': 'Fox', 'age': 298}
# ]
print(sorted(p, key=lambda x: x['age']))
# 按照姓名排序
# [
# {'name': 'Able', 'age': 18},
# {'name': 'Dog', 'age': 36},
# {'name': 'Easy', 'age': 17},
# {'name': 'Fox', 'age': 298}
# ]
print(sorted(p, key=lambda x: x['name']))
zip
拉链?zip接收多个可迭代的参数,返回一个迭代器。返回迭代器的每个元素是元组,第n个元组的元素是入参的迭代器的第那个元素组成的。好绕啊!!!看例子吧。
a = ['mysql', 'linux', 'oracle']
print(list(zip(*a)))
# [('m', 'l', 'o'), ('y', 'i', 'r'), ('s', 'n', 'a'), ('q', 'u', 'c'), ('l', 'x', 'l')]li = ['aa', 'bb']
tu = (11, 22, 33,)
print(list(zip(li, tu)))
# [('aa', 11), ('bb', 22)]p = {'name': 'Kevin','age': 29,'gender': None
}print(list(zip(p.keys(), p.values())))
# [('name', 'Kevin'), ('age', 29), ('gender', None)]
pow
pow,数学计算的乘方,可选参数可以取余数。
print(pow(2, 10)) # 2**10=1024
print(pow(3, 3)) # 3**3=27
print(pow(3, 3, 2)) # 3**3%2=1
reversed
字面意思,将序列入参反转。但是这个对字符串似乎不行,所以字符串反转,还是考虑使用切片方式,将切片的步长设置为-1。
x = ['mysql', 'oracle', 'db2']
# ['db2', 'oracle', 'mysql']
print(list(reversed(x)))s = 'Kevin'
# 没有搞懂为什么reversed不能直接将字符串反转
# #这个不能反转,得到的是 <reversed object at 0x0000000002423A00>
print(str(reversed(s)))
for i in reversed(s):print(i)pass
# 如果要字符串反转,考虑使用切片,步长为-1,得到niveK
sr = s[::-1]
print(sr)
round
round数学上的四舍五入,默认保留到整数,可选保留几位小数。
# 3 和 3.1416
print(round(3.1415926))
print(round(3.1415926, 4))
slice
字面意思,切片,可以定义切片的方式。
s = 'Oracle'
db = ['debian', 'ubuntu', 'centos', 'redhat', 'suse', 'kali']# 定义一个切片,取3到5的切片
sl = slice(3, 6)
# cle
print(s[sl])
# ['redhat', 'suse', 'kali']
print(db[sl])# 定义一个切片,从头到尾,步长为-1,实际上就是反转
s_reversed = slice(None, None, -1)
# elcarO
print(s[s_reversed])
# ['kali', 'suse', 'redhat', 'centos', 'ubuntu', 'debian']
print(db[s_reversed])
type
type函数返回一个变量的类型。对于int、str、tuple、list、dict、set等内置类型推荐使用type。获取的结果用is和类型名做判断。
对于对象,推荐使用isinstance,这个暂时还没有研究,isinstance考虑了子类继承的情况。
x = '256'if type(x) is str:n = int(x) + 1print(n)pass
相关文章:

Andorid自定义attr的各种坑
本文来自网易云社区作者:孙有军在开发Andorid应用程序中,经常会自定义View来实现各种各样炫酷的效果,在实现这吊炸天效果的同时,我们往往会定义很多attr属性,这样就可以在XML中配置我们想要的属性值,以下就…

JS的Dom树小结
一【DOM树节点】DOM节点分为三大类:元素节点、文本节点、属性节点文本节点、属性节点,为元素节点的两个子节点;通过getElement系列方法,可以去到元素节点。二【查看节点】1、getElementById:通过ID获取唯一的节点&…

高考631能上什么好的计算机学校,2021年高考630分能上什么大学 可以报哪些学校...
高考结束后,最重要的事情就是如何填报志愿,高考630分能上什么大学?高考630分可以读哪些专业等等。小编下面就来为大家分享高考630分能上什么大学,供大家参考!!2021年高考630分能上什么理科大学高校名称专业批次平均分最高分中国科学技术大学…

CV00-01-CV基础理论
目录 CV的level和CV的方向 CV的level CV研究方向 CV应用方向 CV工程方向 CV的路线 CV比较好的会议 CV的平台、框架 认识几个CV的缩写 CV的level和CV的方向 CV的level Low Level,图像的基本操作;比如,图像的变换、像素操作、色彩等…

VC++关于UNICODE版本的开发
关于UNICODE版本的开发 代码转换方案 概述 在VC6.0中,相应的有一些宏来代替ANSI的函数、宏或数据类型,这些宏在ANSI编译条件中处理字符串为单字节,而在UNICODE中处理字符串为双字节,请在编写程序中请使用这些宏。 数据类型 表-1.1…

计算机基础办公软件应用技能,计算机一级计算机基础及 ms office 应用考些什么...
一、计基础知识1.计算机的发展、其应用领域。2.计算机中数据的表示、存储与处理。3.多媒体技术的概念与应用。4.计算机病毒的概念、特征、分类与防治。5.计算机网络的概念、组成和分类;计算机与网络信息安全的概念和防控。6.因特网网络服务的概念、原理和应用。二、操作系统的功…

ffmpeg 编译Android
环境 macOS 10.15.4 NDK 21.3.6528147 ffmpeg 4.2.3 1.执行sudo xcodebuild -license,防止编译的时候找不到一些文件报错 2.下载ffmpeg(4.2.3),解压后进入主目录,修改configure文件,找到 SLIBNAME_WITH_MAJOR$(SLIBNAME).$(LIBMAJOR) LI…

Python基础14-迭代器与生成器
目录 迭代器 官方文档对迭代器的解释 迭代器协议 基于迭代器协议的统一的for循环机制 生成器 官方文档对生成器的解释 生成器函数 生成器表达式 生成器用法举例 利用生成器用单线程实现生产者消费者问题模型 生成器只能遍历一次 迭代器 官方文档对迭代器的解释 Thi…

Android学习笔记进阶九之Matrix对称变换
网上很多的倒影特效实际上就是一个对称变换,在改变透明度即可。 Matrix对称变换包括很多种,有关于Y轴对称,关于X轴对称,关于y -x对称等等。 1 关于Y轴对称 [java] view plaincopy// 获取资源文件的引用res Resources res…

《计算机网络应用基础》模拟试卷(六),《计算机与网络应用基础知识1》模拟试卷...
《计算机与网络应用基础知识1》模拟试卷 (4页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.9 积分《计算机与网络应用基础知识1》模拟试卷 一考生注意:1.本试卷共五道大题&…

ios架构篇-1 项目组织架构
关键字:项目组织架构 CocoaPod + 多项目级联 + xib + MVVM ProjectApp 项目app project Vendor 第三方.a、.framework库或源码 Resources 项目静态配置文件 Database 数据库文件夹,如CoreData Component 此项目特定的组件 Base 此项目…

Error 0162 - Setup data integrity check failure after updating BIOS via Thinkvantage
Start the computer and start pressing F1 and get into set up. In setup press F9 for default settings and press F10 for svae and exit. Problem solved. 转载于:https://www.cnblogs.com/gaoshaonian/p/9700130.html

CV00-02-CV基本操作1
目录 数字图像属性 opencv-python环境搭建 基本操作I Read in / Show out,读取、显示图像; Change color,修改颜色; Gamma Correction,伽马校正; Crop,切割; Histogram&…

链式表的按序号查找
本题要求实现一个函数,找到并返回链式表的第K个元素。 函数接口定义: ElementType FindKth( List L, int K );其中List结构定义如下: typedef struct LNode *PtrToLNode; struct LNode {ElementType Data;PtrToLNode Next; }; typedef PtrToL…

Codeforces Round #409 (Div. 2) C Voltage Keepsake(二分)
题意:有n(n<100000)个机器。。。第i个机器最开始有bi(1<bi < 100000)个单位的电量,机器可以储存的电量没有上限,启动后每秒消耗ai(1<ai<100000)个单位的电量,有一个充电器每秒可以充p(1<p<1e9)的电量。求保持所有机器电…

电子计算机的发展与应用教案,川教版信息技术七上第3课《电子计算机的发展与应用》教案1.doc...
川教版信息技术七上第3课《电子计算机的发展与应用》教案1整理双流县中学现代课堂教学分课时教学设计课题第3课 计算机的发展与应用课时1课型新课教学目标知识与能力:了解计算机的产生和发展,了解我国计算机的发展状况,计算机的特点与具体应用…

ios架构篇-2 国际化多语言
关键字:ios,国际化,多语言 实现功能: 1.默认采用系统语言 2.语言切换后实时生效 3.支持中英文,包含页面、app名称、系统默认权限弹框(如相机相册权限) 思路:app首次初始设置为系统语言,用户在app内切换语言时发送语言切换通知,刷新所有页面 1.project增加需要支持的…

Python基础15-函数闭包与装饰器
目录 装饰器概念 装饰器的实现 修改被装饰函数的代码(非装饰器实现) 修改被装饰函数的调用方式(非装饰器实现) 装饰器的实现(不完整的实现level1) 装饰器实现的语法糖(不完整的实现level2…

python 全栈开发,Day132(玩具管理页面,控制玩具通讯录,基于请求的好友关系建立)...
先下载github代码,下面的操作,都是基于这个版本来的! https://github.com/987334176/Intelligent_toy/archive/v1.5.zip 注意:由于涉及到版权问题,此附件没有图片和音乐。请参考链接,手动采集一下ÿ…

iOS技术篇1-CocoaPods
iOS技术篇1-CocoaPods 上一篇: 目录 下一篇:ios技术篇2-CoreData

计算机艺术未来发展趋势,计算机技术对现代艺术设计的影响
摘 要 在当今,计算机技术已经覆盖到了全球生活的各个领域,毫不夸张地说,计算机技术已经成为世界上最重要的技术之一。计算机技术对于某些行业和领域的冲击是巨大的,甚至是革命性的改变,它能够使很多的活动变得更为便捷…

【JZOJ5064】【GDOI2017第二轮模拟day2】友好城市 Kosarajo算法+bitset+ST表+分块
题面 在Byteland 一共有n 座城市,编号依次为1 到n,这些城市之间通过m 条单向公路连接。 对于两座不同的城市a 和b,如果a 能通过这些单向道路直接或间接到达b,且b 也能如此到达a,那么它们就会被认为是一对友好城市。 By…

Python基础16-模块与包基础01
目录 初识模块和包 Python常用的内置模块 关键字import和from import、from查找的路径 如何调用 __name__与模块执行 __name__的用法(单元测试) 初识模块和包 我们把功能相近或相关的py文件组成模块,这样分开写代码便于维护,…

配置用户通过Telnet登录设备的身份认证(AAA本地认证)
背景信息 用户通过Telnet登录设备时,设备上必须配置验证方式,否则用户无法成功登录设备。设备支持不认证、密码认证和AAA认证三种用户界面的验证方式,其中AAA认证方式安全性最高。 采用AAA本地认证方式实现用户通过Telnet登录设备的身份认证&…
【自考】信息系统开发与管理(二)——章节详读
自考的第二阶段结束了,这一阶段是对书的详读过程。每章节读完,画一个导图。将其总结成一张网。织网的过程就是思考的过程。织网不断进行中……!宏观方面:1~3章第一章 管理信息系统导论在研究一…

ios技术篇-CoreData
ios技术篇-CoreData 上一篇: iOS技术篇-CocoaPods 目录 下一篇:

中山大学计算机学院运动会,喜讯!我院获2019中大校运会教工组团体第二名
11月2日,中山大学2019年运动会在南校园举行,来自全校68个院系、附属医院、部门共3200余名师生参加比赛。由37名职工运动员组成的中山七院代表队参加教工组田径赛、趣味田径及球类等全部15项比赛,经过激烈角逐,最终以团体总分173分…

Python基础17-模块与包基础02、常用模块之time、random
目录 名字冲突与避免 设置BASE_DIR保证程序能找到模块位置 time random 名字冲突与避免 在test.py里写下面一段代码,用正则表达式包re进行匹配,匹配出123开头的字符。如果我们在test.py同级写一个re.py,那么Python解释器在进行导入时就会…

Hadoop学习笔记(1) ——菜鸟入门
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: 【百度百科】一个分布式系统基础架构,由Apache基金会所开发。用户能够在不了解分布式底层细节的情况下。开发分布式程序。充分利用集群的威力进行快…

HTTP协议简介
HTTP协议HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP的发展是由蒂姆伯纳斯-李于1989年在…