python day6 内置函数

数学运算

abs()绝对值函数

print(abs(-0.12))

round()对浮点数近似取值,保留几位小数

print(round(2.645,2))  #保留两位小数

pow()求幂运算

print(pow(3,3)) #前面底数,后面次方

max()求最大值

print(max([23,145,4564,1,12345]))

sum()求和

print(sum([12,546,47842,12]))

eval()动态执行表达式

a,b,c = 1,2,3
print(eval('a+b+c'))
def TestFun():
    print('我执行了吗?')
    pass
eval('TestFun()')   #函数的调用

类型转换

十进制转换二进制

print(bin(10))

十进制转换十六进制

print(hex(100))

元组转换为列表

tup = (1,2,3,4)
print(type(tup))
li = list(tup)
li.append('强制转换成功')
print(li)
print(type(li))

列表转换为元组

tupList = tuple(li)
print(type(tupList))

操作字典 dict()

dic = dict(name = '小明',age = '18')  #创建字典
print(type(dic))
print(dic)

转换字节数组

print(bytes('我喜欢python',encoding = 'utf-8'))

序列操作

all()用于判定参数是否都为true是就返回true不是返回false
除了0,空,false以外都为true
空元组,空列表返回true

print(all([]))
print(all(()))
print(all([1, 2, 4, False]))
print(all([1, 2, 4]))
print(all([1, 2, 4, 0]))

any()类似于逻辑运算符,or只要有一个元素为True,结果就为True

print(any((3, 4, 0)))

sorted()对所有可迭代的对象进行排序操作

li = [2, 45, 132, 41, 31, 15]
li.sort()   # list的排序方法,直接修改的原始对象
print('------------排序之前------------{}'.format(li))   # 默认升序排列
varList = sorted(li)
print('------------排序之后------------{}'.format(varList))
varList1 = sorted(li, reverse=True)   # 降序排列
print('------------排序之后------------{}'.format(varList1))
tupArray = (1, 54, 456, 12, 456)
varRs = sorted(tupArray, reverse=False)   # true为降序,false为升序
print(varRs)

range()创建一个整数列表,一般用于for循环中

zip()用来打包

s1 = ['a', 'b', 'c']
s2 = ['你', '我', '他']
s3 = ['是', '儿', '爹', '哈哈', '111']
zipList = zip(s1, s2)
zipList1 = zip(s2, s3)
print(list(zipList))    # 打包
print(list(zipList1))   #多余的不在打包
def printBookInfo():
    books = []   #存储所有图书信息
    id = input ('请输入编号:每个项以空格分割')   #str
    bookName = input('请输入书名:每个项以空格分割')  #str
    bookPos = input('请输入位置:每个项以空格分割')   #str
    idList = id.split(' ')
    nameList = id.split(' ')
    posList = id.split(' ')

    bookInfo = zip(idList, nameList, posList)   #进行打包处理
    for bookItem in bookInfo:
        '''
        遍历图书信息进行存储
        '''
        dictInfo = {'编号':bookItem[0], '书名':bookItem[1], '位置':bookItem[2]}
        books.append(dictInfo)  #将字典对象添加到list容器中
        pass
    for item in books:
        print(item)

printBookInfo()

enumerate()用于可遍历数据对象,组成一个索引序列,同时列出数据和下标

listObj = ['a', 'b', 'c']
for item in enumerate(listObj):
    print(item)
    print(type(item))
    pass

dictObj = {}
dictObj['name'] = '小明'
dictObj['hobby'] = '唱歌'
dictObj['age'] = '17'
print(dictObj)
for item in enumerate(dictObj):
    print(item)

set集合

set不支持索引和切片,是一个无序的且不重复的容器
类似于字典,但只有key没有value

创建集合

set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(type(set1))

添加操作

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.add('python')
print(set1)

清空操作

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.clear()
print(set1)

取差集操作

set1 = {1, 2, 3}
set2 = {2, 3, 4}
rs3 = set1.difference(set2)
print(rs3)

取交集操作

set1 = {1, 2, 3}
set2 = {2, 3, 4}
rs4 = set1.intersection(set2)
print(rs4)

并集操作

set1 = {1, 2, 3}
set2 = {2, 3, 4}
rs5 = set1.union(set2)
print(rs5)

提取数据操作

set1 = {1, 2, 3}
set2 = {2, 3, 4}
rs6 = set1.pop()
print(set1)
print(rs6)

移除指定数据

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.discard(3)
print(set1)

更新操作

set1 = {1, 2, 3}
set2 = {2, 3, 4}
rs7 = set1.update(set2)
print(set1)

小结

数学运算

abs() round() pow() divmod() max() min() sum() eval()

类型转换

int() float() str() ord() chr() bool() bin() hex() cot() list() tuple() dict() bytes()

序列操作

all() any() sorted() reverse() range() zip() enumerate()

集合

add() clear() difference() intersection() union() pop() descard() update()

练习

求三组连续自然数的和:1—10 20—30 35—45的和

def sumRange(m,n):
    '''
    求m到n(包含n)连续自然数的总和
    :param m: 开始值 int
    :param n: 结束值 int
    :return:
    '''
    return sum(range(m,n+1))
    pass
print(sumRange(1, 10))
print(sumRange(20, 30))
print(sumRange(35, 45))

100个和尚吃100个馒头,大和尚一人吃3个,小和尚三人吃一个馒头,大小和尚各多少人?

def PersonCount():
    '''
    计算各有多少人
    假设大和尚a
    小和尚100-a人
    :return:
    '''
    for a in range(1,100):
        if a*3+(100-a)*(1/3)==100:    # 100个和尚吃100个馒头
            return(a,100-a)
        pass
rsObj = PersonCount()
print('大和尚{}人 小和尚{}人'.format(rsObj[0],rsObj[1]))

指定一个列表,列表中有唯一一个只出现过一次的数字,找到这个数字

li = [1, 3, 4, 3, 4, 5, 4, 8, 56, 455, 1, 5, 56, 455]
set1 = set(li)  # 去重
print(set1)
for i in set1:
    li.remove(i)
    pass
set2 = set(li)  # set2中是原来li中有重复的数字
for i in set1:  #判断set1中数据全部去重后形成的集合
    if i not in set2:
        print(i)
        pass
    pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值