python学习Day6-内置函数

一、内置函数的简介

1.什么是内置函数

其实内置函数就是系统已经写好了,我们直接调用就好了

二.内置函数功能列表

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

三.数学运算函数

1、abs() 绝对值函数

a=-2
print(abs(a))
#结果是输出2

2、round()函数

对浮点数进行近似取值,保留几位小数

a=2.359
print(round(a,2))#对a求近似值,保留两位小数,我的编译器输出是2.36

3、pow()函数

print(pow(2,3))#输出2的三次方等于8
print(pow(2,3,3))#2的三次方等于8,然后对3取余等于2

4、dicmod()求余数

5、max()求最大值

print(max([1,5,8,9,45,56]))#序列也就是可以是列表
print(max((1,5,5,5,8)))
print(max(1,2,5))

6、min()求最小值

7、sum()求和

迭代就是可以遍历的对象

print(sum(range(10),3))#得到1-9的和再加上3

8、eval()执行字符串表达式

其实就是去除字符串的设置,把他变成了一个表达式或者语句

def pri():
    print('我被执行了')
    pass
eval('pri()')
#‘pri()’就直接变成了pri()

四、强制转换函数

1.int()转为整型

2.float()转换成浮点数

3.str()转化为字符串

4.ord()字符转数字

5.chr()数字转字符

6.bool()转为布尔型

7.bin()转为二进制

print(bin(5))#得到结果是'0b101'
print(type(bin(5)))#结果是字符串类型

8.hex()转为十六进制

print(hex(18))#得到结果是'0x12'
print(type(bin(5)))#结果是字符串类型

9.oct()转为八进制

10.list()元组转换为列表

tupA=(1,2,3,4)
liA=list(tupA)
print(liA)#得到结果[1,2,3,4]

11.tuple()列表转换元组

12.dict()创建字典

dic=dict()#创建字典过程
print(type(dic))
dic['name']='林然'
dic['age']=18
print(dic)

结果:

13.bytes()转为字节数组

print(bytes('林然'.encode('utf-8')))
#‘林然’是我要转换的字符串,encode是我要转换成的编码

五、序列操作函数

序列操作:元组、字符串、列表

    • all()函数

函数用于判断给定的可迭代参数 iterable【元组或列表】 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False元素除了是 0、空、FALSE 外都算 TRUE,注意空元素、空列表都返回为True

类似于逻辑操作中的and

print(all([]))#空列表返回True
print(all(()))#空元组返回True
print(all(''))#空字符串返回True
print(all([1,2,3,False]))#列表中含有False就会返回False

2.any()函数

函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True,类似于逻辑操作中的or

3.sorted()函数

sorted()是会返回一个新的列表,而sort()是在原列表进行操作,且sort只能对列表操作,而sorted可对可迭代对象进行操作

语法: sorted(iterable,[ cmp, key, reverse])

参数:

iterable -- 可迭代对象

cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序

reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)

返回值:返回重新排序的列表

li=[25,4,26,8,9]
li.sort()#list的排序方法
print('sort排序',li)#原始对象已经被修改了
liA=[25,4,26,8,9]
print('排序之前:  {}'.format(liA))
new_list=sorted(liA,reverse=True)#降序排列
print('排序之后:  {}'.format(liA))#可以发现原有对象并没有改变
print('新列表{}'.format(new_list))

结果:

4.reverse()函数用于反向列表中的元素

5.range() 函数

可创建一个整数列表,一般用在 for 循环中

语法: range(start, stop, step])

6.zip()

函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表

s1=[1,2,3]
s2=['林','然','win']
#zip只是起到一个压缩打包的作用,要想使用需要进行强转
print(list(zip(s1,s2)))#按照序列中对应的索引位置的元素存储为一个元组
#可迭代元素不一致时,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表
s3=['22','33','44','55']
print(list(zip(s1,s2,s3)))

eg:

def printBookInfo():
    books=[]#存储所有图书信息
    id=input('请输入编号:每个项以空格分隔')
    bookName=input('请输入书名:每个项以空格分隔')#把str通过空格分隔
    bookPos=input('请输入位置:每个项以空格分隔')
    id_list=id.split(' ')
    name_list=bookName.split(' ')
    pos_list=bookPos.split(' ')
    bookInfo=zip(id_list,name_list,pos_list)#打包处理
    for bookItem in bookInfo:
        '''
        遍历图书信息进行存储
        '''
        dictInfo={'编号':bookItem[0],'书名':bookItem[1],'位置':bookItem[2]}
        books.append(dictInfo)#将字典对象添加到List容器中
        pass
    print(books)
    pass
printBookInfo()

7.enumerate()

函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中

listA=['a','b','c']
for item in enumerate(listA):
    print(item)
    pass
dictA={'1':'l','2':'a'}
for item in enumerate(dictA,5):#起始下标从5开始
    print(item)
    pass

结果:

六、集合

    • 什么是集合:

set(集合) 也是python中的一种数据类型,是一个无序且不重复的元素集合

#set 不支持索引和切片,是一个无序的的且不重复的容器
#类似于字典,但是只有key,没有value
#创建集合
set1={1,2,3,4}
print(type(set1))

2.集合操作函数

3.add()函数

添加一个元素

#set 不支持索引和切片,是一个无序的的且不重复的容器
#类似于字典,但是只有key,没有value
#创建集合
set1={1,2,3,4}
#添加操作
set1.add(5)
print(set1)

结果:

4.clear()清空操作

#set 不支持索引和切片,是一个无序的的且不重复的容器
#类似于字典,但是只有key,没有value
#创建集合
set1={1,2,3,4}
#添加操作
set1.add(5)
print(set1)
#清空操作
set1.clear()
print(set1)

结果:

4.difference()取差集

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

s1={'a','b','c'}
s2={'1','b','3'}
s3=s1-s2
s4=s1.difference(s2)#是生成了一个新的集合
print(s3)

结果:

5.intersection()交集

s1={'a','b','c'}
s2={'1','b','3'}
s3=s1&s2
s4=s1.intersection(s2)#是生成了一个新的集合
print(s3)

结果:

6.union 并集

包含a中的元素,也包含b中的元素

s1={'a','b','c'}
s2={'1','b','3'}
s3=s1|s2
s4=s1.union(s2)#是生成了一个新的集合
print(s3)
print(s4)

7.pop 集合

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

s1={1,2,3}
print(s1.pop())#移除一个数据
print(s1)

代码:

8.discard 移除指定元素

s1={1,2,3}
s1.discard(2)
print(s1)#结果为{1,3}

9.update 更新集合

就相当于把b的数据加到了a中,是在a的基础上进行更新

七、小结

八、课后练习

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

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

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

九、练习代码

eg1;

def sum_eg():
    '''
    采用sum函数进行运算
    :return: 
    '''
    list1=list(range(1,11))
    print('1-10的和:%d'%sum(list1))
    list2=list(range(20,31))
    print('20-30的和:%d' % sum(list2))
    list3 = list(range(35, 46))
    print('35-45的和:%d' % sum(list3))
sum_eg()

结果:

eg2:

def chi_man_tou():
    '''
    100个和尚吃100个馒头,
    大和尚一人吃3个馒头,
    小和尚三人吃1个馒头。请问大小和尚各多少人?
    :return:
    '''

    for x in range(35):
        y=100-x
        if(y%3==0):
            if(x*3+y/3==100):
                print('大和尚%d人,小和尚%d人'%(x,y))
                pass
            pass
        pass
    pass
chi_man_tou()

结果:

eg3

def list_fun(listA):
    '''
    指定一个列表,
    列表里含有唯一一个只出现过一次的数字。
    写程序找出这个“独一无二”的数字
    :return:
    思路:先排序,判断下标位置的值的左右是否相等
    '''

    listB=sorted(listA)
    if len(listA)==1:
        print(listA[0])
        return
    if listB[0]!=listB[1]:
        print(listB[0])
        return
    if listB[len(listA)-1]!=listB[len(listA)-2]:
        print(listB[len(listA)-1])
        return
    i=1
    while i<(len(listA)-1):
        if listB[i-1]!=listB[i] and listB[i]!=listB[i+1]:
            print(listB[i])
            break
            pass
        i+=1
        pass
listA=list(input('请输入一个列表,其中只有有一个数字是独一无二的'))
list_fun(listA)

十、官方答案

eg1:

def sumRange(m,n):
    return sum(range(m,n+1))
print(sumRange(1,10))
print(sumRange(20,30))
print(sumRange(30,45))

eg2:

def PersonCount():
    '''
    计算各有多少个和尚
    加上大和尚a 小和尚就是100-a
    :return:
    '''
    for a in range(1,100):
        if a*3+(100-a)*(1/3)==100:
            return (a,100-a)
        pass
    pass
res=PersonCount()
print('大和尚{}人,小和尚{}人'.format(res[0],res[1]))

eg3

li=[1,3,4,3,5,2,4,2,5,6,6]
set1=set(li)
for i in set1:
    li.remove(i)#这样li列表只剩下重复的数字集合了
    pass
set2=set(li)#set2中为原来有重复数字的集合
set3=set1-set2#取差集就好了,有一说一确实可以
print(set3.pop())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜小林然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值