6内置函数

内置函数

内置函数

python内置函数详细见链接.

数学运算

abs()取绝对值

print(abs(-348))

round()

对浮点数进行近似取值,保留几位小数
语法: round(x[n]) ;取值规则与python版本有关

 print(round(2.9))
 print(round(2.54,1))#数字1表示保留几位小数

pow()

print(pow(2,2))
print(pow(2,3,5))#表示打印2的3次方除以5的余数

divmod()

print(divmod(89,9))#打印89除以9的(商,余数)

max()

max()
print(max([515,1515,25,55,1215,2121,1215,14511,]))
print(max(1215,1515))

min()

用法与max()的用法一样

sum()

语法:sum(iterable[,start]) iterable为可迭代对象,如:列表、元组、集合
start指定相加的参数,如果没有设置这个值,默认为0

print(sum(range(5),3))#表示0+1+2+3+4+3
print(sum(range(5)))#表示0+1+2+3+4

eval()

用来执行一个字符串表达式,并返回表达式的值
eval(expression[,globals[,locals]])
expression 表达式 globals变量作用域,全局命名空间,如果被提供,则必须是一个字典对象
locals 变量作用域,局部命名空间,如果被提供,可以是任何映射对象

a,b,c=1,2,3
print("ndkbdk={}".format(eval("a+b+c")))
def mm():
    print("berjbg")
    pass
eval("mm()")

类型转换

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

chr( )数字转字符

print(chr(78))

ord 返回ASCII 数值

print(ord('a'))

bool( )转为布尔型

print(bool(0))
print(bool([]))
print(bool('bj'))

bin( ),hex( ),oct( )

print(bin(8))#转为二进制
print(hex(45))#转为十六进制
print(oct(17))#转为八进制

list( ),tuple( ),dic( )

元组转化为列表,记住是元组

tup=(1,2,3,5)
print(type(tup))
li=list(tup)
print(type(li))
print(li)
m=tuple(li)
print(type(m))
print(m)


dic=dict()
dic['name']='小明'
dic['age']=35
print(dic) 

bytes( )转为字节数组

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

序列操作函数

all();any();sorted();reversed();range();zip();enumerate();

all()

判断给定的可迭代参数中的所有元素是否都为true,返回true或false(除0、空、False都是true)
注意空元组,空列表返回值也为true

li=[1,2,3]
print(all(li))
li=[1,2,3,0]
print(all(li))
li=[]
print(all(li))
tup=()
print(all(tup))

any();

判断给定的可迭代参数中的所有元素有一个为true,返回true(除0、空、False都是true)

li=[1,2,3]
print(any(li))
li=[1,2,3,0]
print(any(li))

sorted()排序

sort 与sorted 的区别:
sort是只可应用在list上的方法;sorted可对所有的可迭代对象进行排序
sort返回的是对已经存在的列表进行操作,sorted返回的是一个新的list
语法:sorted(iterable[,cmp[,key[,revers]]])
iterable 可迭代对象
cmp比较的函数,具有两个参数,参数的值都是从可迭代对象中取出,大于返回1,小于返回-1,等于返回0。
key 用来进行比较的元素,只有一个参数,具体的函数的参数取自可迭代对象,指定可迭代对象中的一个元素来进行排序
reverse 排序规则 reverse=True 降序 reverse=False 升序

#列表
li=[1,6,9,3,21]
li.sort()#直接修改的原始对象
print(li)
m=sorted(li)#升序排列
m=sorted(li,reverse=True)#降序排列
print(m)#由于sorted返回的是一个新的列表,所以不可以直接print(li)或
# print(sorted(li,reverse=True))
#元组
tup=(1,6,9,3,21)
b=sorted(tup,reverse=True)
print(tup)
print(b)#或
# print(sorted(tup,reverse=True))

reverse,reversed()

reverse只可用在列表中,不管大小,reversed同样可以用在字符串,元组,列表但其用法还要在研究下??????

a=[1,9,2,45,31,5]
print(a)
a.reverse()
print(a)

range()

。。。。。。。。。。

zip()

将可迭代的对象作为参数,将对象中对应的元素打包成元组,然后返回这些元组组成列表,如果元素个数不一致则返回的列表长度与最短的对象相同,利用 * 操作,将这些元组解压为列表

s1=['1','2','3']
s2=['你','给','很快']
s3=['gk','bm','vjr','vjr','jo']
b=zip(s1,s2)
c=zip(s2,s3)
print(list(b))
print(list(c))


def printbookInfo():
    '''
    zip函数的使用
    :return:
    '''
    book=[]#存储所有的图书信息
    id = input("输入图书编号(以空格分开):")
    bookName = input("输入图书名(以空格分开):")
    bookPos = input("输入图书位置(以空格分开):")
    idList = id.split(" ")
    bookNameList = bookName.split(" ")
    bookPosList = bookPos.split(" ")
    bookInfo=zip(idList,bookNameList,bookPosList)#进行打包处理
    for bookTtem in bookInfo:
        '''
        遍历图书信息
        '''
        dicInfo={'编号':bookTtem[0],'书名':bookTtem[1],'位置':bookTtem[2]}
        book.append(dicInfo)
        pass
    for Item in book:
        print(Item)
printbookInfo()

enumerate()

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

#对列表
list1=['s','d','r']
for item in enumerate(list1):
    print(item)
print()
for index, item in enumerate(list1):
    print(item)
print()
for index, item in enumerate(list1,3):
    print(index, item)

#对字典
dic={}
dic[" bj"]="rrth"
dic["gfd"]="fg"
dic[" hr"]="er"
dic[" fe"]="5y"
print(dic)
for item in enumerate(dic):
    print(item)
print()
for item in enumerate(dic):
    print(item[1])
print()
for index,item in enumerate(dic):
    print(item)

set集合

是一个无序且不重复的元素集合,声明方式类似于字典,但只有键,集合操作函数
add,clear,difference,intersection,union,pop,discard,update

定义

set1={2,"ve"}
print(type(set1))
print(set1)

add()添加

set1={2,"ve"}
set1.add('vdj')
print(set1)

clear()清空

set1={2,"ve"}
set1.clear()
print(set1)

difference(),-差集

set1={2,"ve"}
set2={4,"ve"}
b=set1.difference(set2)
print(b)
print(set1-set2)

intersection(),&交集

set1={2,"ve"}
set2={4,"ve"}
print(set1.intersection(set2))
print(set2&set1)

union, | 并集

set1={2,"ve"}
set2={4,"ve"}
print(set1.union(set2))
print(set2 | set1)

pop移除

对于直接定义为set型的,pop移出的的元素并不指定,随机移除。但是对于有列表或元组强制性转换为set型的移除的是左边的第一个元素,但由于列表或元组强制性转换为set型会自动去重复且按从小到大排序,所以pop移除的一般又同时是最小的。

set0={2,"ve"}
print(set0.pop())
print(set0)
print('------------------------------------------')
set1 = set([9, 4, 5, 2, 6, 7, 1, 8,9,6,5])
print(set1)
print(set1.pop())
print(set1)
print('------------------------------------------')
set2 = set((6, 3, 1, 7, 2, 9, 8, 0,0,6,7))
print(set2)
print(set2.pop())
print(set2)

discard移除指定的元素

set1={2,"ve"}
set2={4,"ve"}
print(set1.discard(2))
print(set1)

update更新

与并集操作类似

set1={2,"ve"}
set2={4,"ve"}
set1.update(set2)
print(set1)

练习题

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

def sumf(a,b):
    return sum(range(a,b+1))#不可写成sum(a,b+1),sum中的数必须为int型
pass
print(sumf(1,10))
print(sumf(20,30))
print(sumf(35,45))

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

def numberr():
    for a in range(34):
        if 3*a+(100-a)/3==100:
            return a, 100 - a
            pass
        pass
    pass
b=numberr()
print('大和尚{} 小和尚{}'.format(b[0],b[1]))

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

c=[3,2,5,7,5,1,4,3,5,1,4,1,3]
set1=set(c)#为数据全部去重后的集合
print(set1)
for i in set1:
    c.remove(i)
    pass
set2=set(c)#c中有重复的集合
print(set2)
for i in set1:
    if i not in set2:
        print(i)
        pass
    pass
pass
上一篇:我的Python入门笔记(10)


下一篇:Python集合取交集intersection()函数和intersection_update()函数