内置函数
内置函数
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