Python自学之路——Python基础(四)内置函数
对上表一些比较重要常用的内置函数做一个整理
chr()与ord() chr()是将ASCII中十进制编号转换成相应的字符,而ord()刚好相反
c = chr(49) o = ord('1') print(c) print(o) 输出结果: 1 49
知道了chr()的基本用法,可以利用它来生成一个字母验证码,因为验证码都是随机生成的,所以这里要涉及到random模块。在ASCII中,大写字母的十进制编号是从65到90.
小写字母是97到122
1 import random 2 li = [] 3 for i in range(6): 4 r = random.randrange(0,7) 5 if r == 2 or r == 4: 6 num = random.randrange(0,10) 7 li.append(str(num)) 8 elif r ==1 or r == 5: 9 item = random.randrange(97,123) 10 c = chr(item) 11 li.append(c) 12 else: 13 item = random.randrange(65, 91) 14 C = chr(item) 15 li.append(C) 16 result = "".join(li)#将列表的元素提取出来,使用join是,元素需要是字符串类型 17 print(result)
compile() eval() exec() 在了解compile之前,我们先来了解一下python中.py文件是如何打开的。当我们读取文件内容时,把字符串加载至内存中,python将内存中的字符串编译成特殊的代码,然后执行该代码。compile()的作用就是将字符串编译成代码。exec()、eval()都是执行代码,但它们是有区别滴~(看代码中注释)
1 s = "print(123)" 2 #将字符串编译成python代码 3 r = compile(s, '<string>', 'exec') 4 print(r) 5 #接收代码或字符串,执行python代码(字符串),没有返回值 6 exec(r) 7 输出结果: 8 <code object <module> at 0x00000245086A2780, file "<string>", line 1> 9 123 10 11 s = '8 * 8' 12 #执行表达式,并且获取结果,有返回值 13 ret = eval(s) 14 print(ret) 15 输出结果: 16 64
dir() help() dir()是快速查看对象提供了哪些功能,help()提供了功能的具体解释,不常用。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
print(dir(list)) help(list) 输出结果: ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] Help on class list in module builtins: class list(object) | list() -> new empty list | list(iterable) -> new list initialized from iterable's items | | Methods defined here: | | __add__(self, value, /) | Return self+value. | | __contains__(self, key, /) | Return key in self. | | __delitem__(self, key, /) | Delete self[key]. | | __eq__(self, value, /) | Return self==value. | | __ge__(self, value, /) | Return self>=value. | | __getattribute__(self, name, /) | Return getattr(self, name). | | __getitem__(...) | x.__getitem__(y) <==> x[y] | | __gt__(self, value, /) | Return self>value. | | __iadd__(self, value, /) | Implement self+=value. | | __imul__(self, value, /) | Implement self*=value. | | __init__(self, /, *args, **kwargs) | Initialize self. See help(type(self)) for accurate signature. | | __iter__(self, /) | Implement iter(self). | | __le__(self, value, /) | Return self<=value. | | __len__(self, /) | Return len(self). | | __lt__(self, value, /) | Return self<value. | | __mul__(self, value, /) | Return self*value.n | | __ne__(self, value, /) | Return self!=value. | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. See help(type) for accurate signature. | | __repr__(self, /) | Return repr(self). | | __reversed__(...) | L.__reversed__() -- return a reverse iterator over the list | | __rmul__(self, value, /) | Return self*value. | | __setitem__(self, key, value, /) | Set self[key] to value. | | __sizeof__(...) | L.__sizeof__() -- size of L in memory, in bytes | | append(...) | L.append(object) -> None -- append object to end | | clear(...) | L.clear() -> None -- remove all items from L | | copy(...) | L.copy() -> list -- a shallow copy of L | | count(...) | L.count(value) -> integer -- return number of occurrences of value | | extend(...) | L.extend(iterable) -> None -- extend list by appending elements from the iterable | | index(...) | L.index(value, [start, [stop]]) -> integer -- return first index of value. | Raises ValueError if the value is not present. | | insert(...) | L.insert(index, object) -- insert object before index | | pop(...) | L.pop([index]) -> item -- remove and return item at index (default last). | Raises IndexError if list is empty or index is out of range. | | remove(...) | L.remove(value) -> None -- remove first occurrence of value. | Raises ValueError if the value is not present. | | reverse(...) | L.reverse() -- reverse *IN PLACE* | | sort(...) | L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE* | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None
divmod() 该函数的形式为divmod(被除数,除数),返回的是一个商和余数的元组
r = divmod(98,10) print(r) print(r[0]) print(r[1]) n1, n2 = divmod(99,8) print(n1, n2) 输出结果: (9, 8) 9 8 12 3
enumerate() 遍历序列中的所有元素返回元素的下标和值
seq = ['alex', 'jack', 'john'] for i, element in enumerate(seq): print(i, element) 输出结果: 0 alex 1 jack 2 john
isinstance() 用于判断对象是否是某个类的实例 isinstance(对象,类型)
filter() filter(函数,可迭代的对象) ,它会遍历第二个参数里的每一个元素,将这个元素代入到第一个参数里,若函数返回的是Turn,则将这个元素留下,否则抛弃。简而言之。就是它能根据条件过滤数据。
def f1(a): if a > 22: return True lis = [11, 22, 33, 44, 55] res = filter(f1, lis) print(list(res)) 输出结果: [33, 44, 55] #由于f1函数是简单的函数,可以用lambda表达式代替 lis = [11, 22, 33, 44, 55] res = filter(lambda a :a >22, lis) print(list(res))
map() map(函数,可迭代的对象),用于对对象里的每一个元素做操作。它会遍历对象里的每一个元素,将这个元素在函数里执行,将这些结果输出到新的对象中。
lis = [11, 22, 33, 44, 55] res = map(lambda a: a + 100,lis) print(list(res)) 输出结果: [111, 122, 133, 144, 155]
zip() 将多个列表的元素混合起来,返回一个新的列表,里面是元素是元组型。
l1 = ['linda', 22, 33] l2 = ['happy', 22, 33] l3 = ['everyday', 22, 33] new_lis = zip(l1, l2, l3) res = list(new_lis)[0] r = ' '.join(res) print(r) 输出结果: linda happy everyday
暂时写到这,后续应该还有补充……