PYTHON学习笔记(五)-- 内置函数

1.常用算数内置函数

#abs()---取绝对值
a = abs(-32)#32
print(a)

#round --- 取近似值(四舍五入),也可以在第二个参数设定保留几位小数
b = 3.66;
c = round(b);#4
d = round(b,1);#3.7
print(c,d)

#pow -- 求一个函数的幂次方
a = pow(2,3)#求2的3次方--8 == 3**3
print(a)

#max--求给定序列的最大值
a=max([23,123,22,5,6,3]);#123  序列,元组都可以
print(a)

#sum -- 求和,可以求和序列和元组,也可以迭代使用
print(sum(range(50),3));#迭代使用

#eval--动态执行的函数,执行字符串表达式,并返回表达式的值
a,b,c = 1,2,3
d=eval('a*b+c-30')#-25
print(d)
def TestFun():
    print('甚至可以执行函数')
    pass
eval('TestFun()')

在这里插入图片描述

2.类型转换内置函数

#bin()--转换二进制
a = 10;
print(bin(a))#将a转换成2进制

#hex()--转换成16进制
print(hex(31))

#chr()--将数字转换为字符--ASCII码标准
a = 65
print(chr(a))

#list()--将元组转换为列表//tuple()--将序列转换为元组
tup = (1,2,3,4)
print(type(tup))
li = list(tup)
print(type(li))

#dict()--用于创建字典
dic = dict(name = '小明')
print(type(dic))
print(dic)

#bytes()--转换为字节数组,第一个参数为数据,第二个参数为转换标准
print(bytes('转换为字节数组',encoding='utf-8'))

3.序列操作函数

#序列操作函数
#all()用于判断一个元组/列表中的所有元素是否都为true,
# 如果是则返回true(除了是0,空,false外都算true)-- &&
li = [1,2,3]
print(all(li))#true
li = [1,2,3,0]
print(all(li))#false

#用于判断给定元组/列表内数据是否全部为false,是则返回false,否则返回true--||
li = [0,'',False]
print(any(li))#false
li = [0,'',False,1]
print(any(li))#true

#sorted()/sort() -- 排序函数
#sort--只应用在list中,sorted--可以对所有可迭代对象进行排序操作
#sort--对原有列表进行操作,sorted--生成一个新的list并返回数据
#默认是升序 reverse -- false(升序) -- true(降序)
li = [5,1,3,8,22]
print(li.sort())#修改并打印原始对象,因此不能排序元组,因为元组一旦定义不可修改
print(sorted(li,reverse=True))
print(sorted(li))#默认为false
VarList = sorted(li)#可以用一个新对象接受,原数组是不变化的

#reverse()--反转列表中的元素
li = [5,1,3,8,22]
li.reverse()
print(li)

#range(start,stop,step)生成一个整数列表

#zip()--将对象中元素打包成一个个元组,且一一对应,个数与最短序列一样
s1=['1','2','3']
s2=['你','我','他','他们']
s3=['a','b','c','d','e']
z3=zip(s1,s2)#('1', '你'), ('2', '我'), ('3', '他')
z4 = zip(s1,s2,s3)#('1', '你', 'a'), ('2', '我', 'b'), ('3', '他', 'c')
print(list(z3))#压缩后要转换成列表才可以展示,否则输出的是地址
print(list(z4))

#zip应用--图书信息存储
def printBookInfo():
    books = [] #定义一个存储所有图书信息的数组
    id = input('请输入编号: 每个编号以空格分隔')
    bookName = input('请输入书名: 每个书名以空格分隔')
    bookPos = input('请输入位置: 每个位置以空格分隔')

    idList = id.split(' ')#将id字符串以空格分隔为一个个元素并存到列表中
    bookNameList = bookName.split(' ')
    bookPosList = bookPos.split(' ')

    bookInfo = zip(idList,bookNameList,bookPosList)#将三个列表对应压缩
    for bookItem in bookInfo:
        '''
        遍历图书信息并进行储存
        '''
        dicInfo={'编号':bookItem[0],'书名':bookItem[1],'位置':bookItem[2]}
        #用字典将数据一一对应存储
        books.append(dicInfo)
        pass
    for item in books:
        print(item)#打印
        pass
    pass
#printBookInfo()

#enumerate()--将以个可遍历数据对象组合为一个索引序列,并列出下标
li = ['a','b','c','d']
#要用循环提取数据,分别提取索引和数据
for index,item in enumerate(li,1):#第二个参数指定索引从1开始
    print(index,item)

4.set集合
Set集合是一种数据类型,是一个无序且不重复的元素集合
集合不支持索引和切片
类似于字典,但是只有键值

创建方式

1. set1 = {"1","2"}
2. list1 = ['1','2','3','4']
	set2 = set(lisit1)
	#没有键值对定义的字典
set = {1,2,3}
set2 ={2,3,4}
set1 = {1,2,3}
print(type(set))#<class 'set'>

#添加操作
set.add('python')
print(set)#{1, 2, 3, 'python'}

#清空操作
set.clear()
print(set)#set()

set2 ={2,3,4}
set1 = {1,2,3}
#取差值
set3 = set1.difference(set2)#就是拿set1中有,但是set2中没有的数据
#相当于print(set1-set2)
print(set3)#{1}

#交集操作
set4 = set1.intersection(set2)
#相当于 set4 = set1&set2
print(set4)#{2, 3}

#并集操作
set5 = set1.union(set2)
#相当于 set5 = set1|set2
print(set5)#{1, 2, 3, 4}

#pop 拿数据并移出该数据
print(set1)#{1, 2, 3}
a = set1.pop()
print(a)#1
print(set1)#{2, 3}

#discard 移除数据
set2.discard(4)
print(set2)#{2, 3}

#update更新集合--就是将两个集合合并并返回到第一个集合处
set.update(set1)
print(set)#{2, 3}

5.作业

#求三组连续自然数的和
a=sum(range(1,10+1))#最后一个数是不算的,左闭右开,所以要加1
b=sum(range(20,30+1))
c=sum(range(35,45+1))
def sumRange(m,n):#定义函数做
    return sum(range(m,n+1))
    pass
print(sumRange(1,10))
print(sumRange(20,30))
print(sumRange(35,45))
print(a,b,c)

#100个和尚吃100个馒头,大和尚一人3个馒头,小和尚3人一个馒头,问各多少人
def PersonCount():
    for a in range(1,100):#将大和尚人数从1算到100
        if a*3 + (100-a)*(1/3)==100:
            return (a,100-a)#成立则返回
        pass
    pass
rsObj = PersonCount()
print('大和尚{}人,小和尚{}人'.format(rsObj[0],rsObj[1]))

#提取列表中唯一出现过的数字
li =  [1,3,4,3,3,5,7,2,4,2,5,2,1]
set1=set(li)
#遍历set1中的元素,去掉多于一个的数据值
#for i 拿的是对应的数据值而不是下标
for i in set1:
    li.remove(i)
    pass
set2 = set(li)#li中有重复数字的集合
#再遍历一次set1找到没有重复的值
for i in set1:
    if i not in set2:
        print(i)
        pass
    pass
pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值