一些常用内置函数

print(abs(-6))
#判断一个可迭代类型里的所有元素是不是都是true, 如果列表为空,也返回True
print("~~~~~all~~~~~~")
print(all([None,9,100]))   #None,"",0的 bool()为false
print(all(["",100]))
print(all(["美","Love",[9,9]]))
print(all(""))
#判断一个可迭代类型里的所有元素是不是有一个是true
print("~~~~~any~~~~~")
print(any([None,""]))
print(any(["",100]))
#转换成2进制数bin() 16进制hex() 8进制oct()
print("~~~~~bin~~~~~")
print(bin(4))

#转字节
print("~~~~~bytes~~~~~")
telma = "你好"
print(bytes(telma.encode("utf-8")))  #utf-8 一个汉字3个字节 或者bytes(telma,encoding="utf-8")
print(bytes(telma.encode("utf-8")).decode("utf-8"))  #s编码和解码一致
print(bytes(telma.encode("gbk")))  #gbk一个汉字2个字节
print(bytes(telma.encode("gbk")).decode("gbk"))
#ascii不能编码中文

#通过ascii码找对应字符
print("~~~~~chr~~~~~")#ord()正好相反,通过字符找对应ascii码
print(chr(98))
print("~~~~~divmod~~~~~")
print(divmod(100,3))  #100/3=33余1

#提取字符串中的数据结构
print("~~~~~eval~~~~~")
amlet = {"name":"Chris","Age":19}
print(amlet)
lem = str(amlet)
print(type(lem))
print(type(eval(lem)))

lm = "8+7*(6-9*1)-2"
print(eval(lm))

 

6
~~~~~all~~~~~~
False
False
True
True
~~~~~any~~~~~
False
True
~~~~~bin~~~~~
0b100
~~~~~bytes~~~~~
b'\xe4\xbd\xa0\xe5\xa5\xbd'
你好
b'\xc4\xe3\xba\xc3'
你好
~~~~~chr~~~~~
b
~~~~~divmod~~~~~
(33, 1)
~~~~~eval~~~~~
{'name': 'Chris', 'Age': 19}
<class 'str'>
<class 'dict'>
-15

 

print(isinstance({},dict))
print(isinstance((),tuple))
print(isinstance("jj",str))

print(globals()) #打印全局变量
print(locals())  #打印局部变量

 

True
True
True
True
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0385DE50>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/yiruiwa/PycharmProjects/helloworld/hello world.py', '__cached__': None}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0385DE50>, '__spec__': None, '__annotations__': {}, '__builtins_

 

print("~~~~~zip~~~~~")
print(zip(("a","b","c"),(1,2,3)))  #输入是2个序列(列表,元组,字符串),输出是zip object
print(list(zip(("a","b","c"),(1,2,3))))
print(list(zip(("a","b","c","d"),(1,2,3)))) #两个元祖必须长度一致,多余的被丢弃

telma = {"name":"Chris","age":18,"sex":"Male"}
print(list(telma.keys()))
print(list(telma.values()))
print(list(zip(telma.keys(),telma.values()))) #将字典转换成元素集合的列表

 

~~~~~zip~~~~~
<zip object at 0x0131CE18>
[('a', 1), ('b', 2), ('c', 3)]
[('a', 1), ('b', 2), ('c', 3)]
['name', 'age', 'sex']
['Chris', 18, 'Male']
[('name', 'Chris'), ('age', 18), ('sex', 'Male')]

 max()函数处理的是可迭代类型,相当于for循环取个每个元素比较,但是不同类型之间不能比较。每个元素比较是从第一个位置开始比较,如果第一个位置就分出大小,后面就不用比了.sort(),min()类似

telma =[1,7,199,5]
print(max(telma))  #max可以比较可迭代类型
print(min(telma))

#找出字典中值最大的对应的key
amlet = {"Chris":18,"John":20,"Flora":21}
print(max(amlet)) #默认迭代是字典的key
print(max(amlet.values()))
lem = zip(amlet.values(),amlet.keys()) #用zip将字典倒装
print(max(lem)) #默认比较第一个元素,所以倒装之后先比年龄

print(max("a10","b11","c9"))  #先比第一个元素c最大,所以c9最大

 

199
1
John
21
(21, 'Flora')
c9

 

#假如是无法比较的类型,如字典,需要自己提供关键字给max
telma=[{"name":"Chris","age":18},{"name":"John","age":20},{"name":"Flora","age":21}]
print(max(telma, key=lambda dict:dict["age"]))

 

{'name': 'Flora', 'age': 21}

 

posted on 2019-03-11 11:15  telma  阅读(113)  评论(0)    收藏  举报

导航