内置函数导入

任何一门编程语言的核心操作都是操作内存中的数据,但内存中的数据又是通过编程语言的API来实现,所谓的API,就是系统提供给我们的函数,有一种函数是系统预先定义的函数,也就是我们安装python就自带的函数,这种我们把它称为内置函数,也叫内嵌函数

什么是内置函数?

所谓内置函数就是python安装后就自带有的函数

如同人一生下来就有手有脚,会吃会喝一样,具备基本的能力 ,随着成长和学习,我们学会了说话、学会了工作,学会了技能等,而这些能力就如同我们 Python 的扩展函数或扩展库

内置函数功能列表

Python内置函数 python内置了一系列的常用函数,以便于我们使用。所有内置函数官网文档 https://docs.python.org/3/library/functions.html 内置函数

__sub__ python 内置函数 python中内置函数_python


数学运算函数

print(abs(-34))  #求绝对值函数
print(round(5.62,1))  #保留一位函数,取近视值函数
print(pow(3,3))  #求幂函数
print(divmod(7,3))  #求商和余数
print(max(2,3,2,8,2,4)) #求最大值,可以是一个序列
print(max([56,12,13,49,85]))  #求最大值,可以是一个序列
print(sum((2,3,2,8,2,4),2)) #求和,可以是一个序列
print(sum(([56,12,13,49,85])) ) #求和,可以是一个序列
a,b,c=1,2,3
print(eval('a+b+c'))
print('动态执行的函数{}'.format(eval('a*b+c-30')))
def TestFun():
    print('我执行了吗?')
    pass
eval('TestFun()')
print(eval('x+y+z',{'x':3,'y':1,'z':3}))
-----------------运行结果-------------------
34
5.6
27
(2, 1)
8
85
23
215
6
动态执行的函数-25
我执行了吗?
7

类型转换函数

print(int(3.6))  #整型
print(float(3))  #浮点型
a=1
print(type(a))
print(type(str(a)))  #整型转换为浮点型
print(chr(65)) #
print(bin(10)) # 转换二进制
print(hex(32))   # 转换十六进制
print(list((1,2,3)))  #将元组转换成列表
print(tuple([1,2,3]))  #将列表转换成元组
dict(a=1,b='hello',c=[1,2,3])  #dict()创建字典
print(bytes('我喜欢python',encoding=('utf-8')))
-------------------输出结果--------------------
3
3.0
<class 'int'>
<class 'str'>
A
0b1010
0x20
[1, 2, 3]
(1, 2, 3)
b'\xe6\x88\x91\xe5\x96\x9c\xe6\xac\xa2python'

序列操作函数
all() any()sorted()reverse()range()zip()enumerate()
all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False元素除了是 0、空、FALSE 外都算 TRUE
语法: all(iterable)
参数: iterable – 元组或列表
**返回值:**如果iterable的所有元素不为0、’’、False或者iterable为空,all(iterable)返回True,否则返回False;

li=[1,2,3]
print(all(li))  #返回True
li2=[1,2,0]
print(all(li2))   #返回False

any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True
语法: any(iterable)
参数: iterable – 元组或列表
**返回值:**如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true

li=[1,2,3,0]
print(any(li))  #返回True
li2=[False,'',0]
print(any(li2)) #返回False

sorted() 函数对所有可迭代的对象进行排序操作
sort与sorted 区别:
sort是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作,
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作
语法: sorted(iterable[, cmp[, key[, reverse]]])
参数:
iterable – 可迭代对象
cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)
返回值:返回重新排序的列表

li=[5,2,4,6,8,3]
li.sort()
print(li)  #sort 只能针对序列
print(sorted([1,2,3,5,6,9]))   #默认升序排序,返回[1, 2, 3, 5, 6, 9]
print(sorted([1,2,8,7,6,9]))   #返回[1, 2, 6, 7, 8, 9]
print(sorted([1,2,8,7,6,9],reverse=True))    #倒序[9, 8, 7, 6, 2, 1]
print(sorted(['a','b','C','D','c'],key=str.lower))  #字符串无关大小写排序
-------------------输出结果--------------------
[2, 3, 4, 5, 6, 8]
[1, 2, 3, 5, 6, 9]
[1, 2, 6, 7, 8, 9]
[9, 8, 7, 6, 2, 1]
['a', 'b', 'C', 'c', 'D']

reverse() 函数用于反向列表中元素
语法: list.reverse()
返回值:该方法没有返回值,但是会对列表的元素进行反向排序

li=[5,2,4,6,8,3]
list.reverse(li)
print(li)   #对列表的元素进行反向排序
-------------------输出结果--------------------
[3, 8, 6, 4, 2, 5]

range() 函数可创建一个整数列表,一般用在 for 循环中
语法: range(start, stop[, step])
参数:
start: 计数从 start 开始默认是从 0 开始例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1例如:range(0, 5) 等价于 range(0, 5, 1)

for i in range(6):
    print(i)
for i in range(0,6,2):   #步长是2
    print(i)

zip() 函数
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表
语法: zip([iterable, …])
参数: iterabl – 一个或多个迭代器;
**返回值:**返回元组列表

a = zip([1,2,3],['a','b','c'])
print(list(a))
b=zip(['a','b','c'])
print(list(b))

c=['1','2','3']
d=['a','b','c']
zipList=zip(c,d)
print(list(zipList))
-------------------输出结果--------------------
[(1, 'a'), (2, 'b'), (3, 'c')]
[('a',), ('b',), ('c',)]
[('1', 'a'), ('2', 'b'), ('3', 'c')]

如果可迭代对象的元素个数不一样,那么按照最少的那个迭代压缩最少元素进行可迭代对象结束后退出

a = zip([1,2,3],['a','b','c','d','e'])
print(a)
-------------------输出结果--------------------
[('1', 'a'), ('2', 'b'), ('3', 'c')]

enumerate()函数
enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
语法: enumerate(sequence, [start=0])
参数:
sequence – 一个序列、迭代器或其他支持迭代对象
start – 下标起始位置
返回值:返回 enumerate(枚举) 对象

seasons =  ['spring','summer','fall','winter']
print(list(enumerate(seasons)))

seasons =  ['spring','summer','fall','winter']
for index,item in enumerate(seasons):
    print(index,item)
-------------------输出结果--------------------
[(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')]

0 spring
1 summer
2 fall
3 winter

set集合
set(集合) 也是python中的一种数据类型,是一个无序且不重复的元素集合
创建集合方式?
第一种方式
set1 = {“1”,“2”}
第二种方式
list1 = [‘1’,‘5’,‘4’,‘3’]
set2 = set(list1)
集合的方法
add()
clear()
difference()
intersection()
union()
pop()
discard()
update()
特点
不支持索引和切片,类似于字典,但是只有key 没有value

add()添加一个元素

set1={1,2}
set1.add(3)
print(set1)
-------------------输出结果--------------------
{1, 2, 3}

clear()清空集合的元素

set1={'2', '1', '3'}
set1.clear()
print(set1)
-------------------输出结果--------------------
set()

difference() 两个集合的差集,a中存在,b中不存在

a = {32,12,34}
b = {12,43,23}
print(a.difference(b))
-------------------输出结果--------------------
{32, 34}

intersection()两个集合的交集,a中存在,b中也存在的

a = {32,12,34}
b = {12,43,23}
print(a.intersection(b))
-------------------输出结果--------------------
{12}

union 并集 包含a中的元素,也包含b中的元素

a = {32,12,34}
b = {12,43,23}
print(a.union(b))
-------------------输出结果--------------------
{32, 34, 23, 43, 12}

pop 集合pop随机移除某个元素并且获取那个参数,集合pop没有参数

a =  {32,12,34}
print(a.pop())
print(a)
-------------------输出结果--------------------
32
{34, 12}

discard 移除指定元素

a =  {32,12,34}
a.discard(12)
print(a)
-------------------输出结果--------------------
{32, 34}

update 更新集合,会自动去重

a={1,2,4}
b={4,5,6}
a.update(b)
print(a)
-------------------输出结果--------------------
{1, 2, 4, 5, 6}

Python 内置函数小结
数学运算
abs() 、 round() 、pow() 、divmod() 、max() 、min() sum() 、eval()
类型转换
int()、float()、str()、ord()、chr()、bool()、bin()、hex()、oct()、list()、tuple()、dict()、bytes()
序列操作
all()、any()、sorted()、reverse()、range()、zip()、enumerate()
集合
add()、clear()、difference()、intersection()、union()、pop()、discard()、update()

作业
1.求三组连续自然数的和:求出1到10、20到30和35到45的三个和

def sumRange(m,n):
    '''
    求从m到n的连续自然数的总和
    :param m: 开始值  int
    :param n: 结束值  int
    :return:
    '''
    return sum(range(m,n+1))
print(sumRange(1,10))
print(sumRange(20,30))
print(sumRange(35,45))
-------------------输出结果--------------------
55
275
440

2.100个和尚吃100个馒头,大和尚一人吃3个馒头,小和尚三人吃1个馒头。请问大小和尚各多少人?

def Person():
    '''
    计算各有多少个和尚
    假设大和尚a人,小和尚100-a人
    :return:
    '''
    for a in range(1,101):
        if a*3+(100-a)/3==100:
            return(a,100-a)

rs=Person()
print(rs)
print('大和尚{}人,小和尚{}人'.format(rs[0],rs[1]))
-------------------输出结果--------------------
(25, 75)
大和尚25人,小和尚75人

3.指定一个列表,列表里含有唯一一个只出现过一次的数字。写程序找出这个“独一无二”的数字

list1=[1,1,2,2,3,4,5,4,5,6,7,8,6,7,8]
set1=set(list1)
print(set1)  #原来的list1中进行去重 {1, 2, 3, 4, 5, 6, 7, 8}
for i in set1:
    list1.remove(i)  #原来的list1中set1中的元素都去掉{1, 2, 4, 5, 6, 7, 8}
set2=set(list1)
print(set2)
print(set1.difference(set2))   #两个集合的差集,set1中存在,set2中不存在{3}
-------------------输出结果--------------------
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 4, 5, 6, 7, 8}
{3}