内置函数
掌握
1. bytes()
2. chr()/ord()
3. divmod()
4. enumerate()
5. eval()
6. hash()
- bytes()解码字符,将字符转换为二进制
res = 'hello 世界'.encode('utf-8')
print(res)
b'hello \xe4\xb8\x96\xe7\x95\x8c'
res = bytes('hello 世界',encoding='utf-8')
print(res)
b'hello \xe4\xb8\x96\xe7\x95\x8c'
chr()/ord()
chr():将[0-256]的整数转化为ASCII码对应字符
ord():将字符转换为对应数字
print(chr(97))
print(ord('a'))
a
97
- divmod() 分栏
print(divmod(17,3)) # 返回(17//3,17%3)
(5, 2)
enumerate()
以元组的形式返回迭代器对象的索引和对应值
s = 'hello'
for i in enumerate(s):
print(i)
(0, 'h')
(1, 'e')
(2, 'l')
(3, 'l')
(4, 'o')
eval()
把字符串转换为其他数据类型
s = '2'
lis = "[1,2,'3']"
print(eval(s),type(eval(s)))
print(eval(lis),type(eval(lis)))
2 <class 'int'>
[1, 2, '3'] <class 'list'>
hash()
判断是否可hash,可变数据类型为不可hash类型,不可变数据类型为可hash类型
print(hash(2))
2
了解
1. abs()
2. all()
3. any()
4. bin()/oct()/hex()
5. dir()
6. frozenset()
7. globals()/loacals()
8. pow()
9. round()
10. slice()
11. sum()
12. import()
abs()
取绝对值
print(abs(-12))
12
all()
可迭代对象内元素全为真则返回True,否则返回False
print(all([1,'2',3,0]))
print(all([]))
False
True
any()
可迭代对象里面有一个元素为真,则返回True
print(any([0,[],None,{},'',False]))
False
bin()/oct()/hex()
bin():转化为二进制数
oct():转化为八进制
hex():转化为十六进制
print(bin(20))
print(oct(20))
print(hex(20))
0b10100
0o24
0x14
dir()
列举出模块所有功能
import time
print(dir(time))
['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']
frozenset()
不可变集合
s = frozenset({1,2,'a','c'})
print(s)
s[1] = 3 # 报错,不可改变
frozenset({1, 2, 'c', 'a'})
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-33-ef2c6686afe7> in <module>
1 s = frozenset({1,2,'a','c'})
2 print(s)
----> 3 s[1] = 3 # 报错,不可改变
TypeError: 'frozenset' object does not support item assignment
globals()/locals()
查看全局变量/查看局部变量
def f1(num):
x = 10
print(locals())
print(num)
num = 20
f1(num)
# print(globals())
{'x': 10, 'num': 20}
20
pow()
pow(x, y[, z])返回的是
x**y%z
print(pow(2,10,3),2**10%3)
print(pow(2,5),2**5)
1 1
32 32
round()
四舍五入
print(round(3.4),round(3.5))
3 4
slice()
实现切片slice(start,stop[,step])
lis = [1,2,3,4,5,6,7]
s1 = slice(0,3)
s2 = slice(3,6,2)
print(lis[s1])
print(lis[s2])
[1, 2, 3]
[4, 6]
sum()
求和
lis = [1,2,3,4,5,6,7]
print(sum(lis))
28
__import__()
通过字符串导入模块
time = __import__('time')
print(time.time())
1560430597.1571605
面向对象编程
面向对象编程就是将程序封装成一个个函数,然后按照执行顺序进行调用,上一个函数的返回值作为下一个函数的参数传入
就好比工厂生产一样,一步一步的工序,下一道工序要基于上一道工序来做处理,如果上一道工序出现问题,下一道工序就会受影响
优点:将复杂的问题简单化,流程化
缺点:扩展性差