内置函数+面向对象编程

内置函数

掌握

1. bytes()
2. chr()/ord()
3. divmod()
4. enumerate()
5. eval()
6. hash()
  1. 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'
  1. chr()/ord()

    chr():将[0-256]的整数转化为ASCII码对应字符
    ord():将字符转换为对应数字

print(chr(97))
print(ord('a'))
a
97
  1. divmod() 分栏
print(divmod(17,3))   # 返回(17//3,17%3)
(5, 2)
  1. enumerate()

    以元组的形式返回迭代器对象的索引和对应值

s = 'hello'
for i in enumerate(s):
    print(i)
(0, 'h')
(1, 'e')
(2, 'l')
(3, 'l')
(4, 'o')
  1. 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'>
  1. 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()
  1. abs()

    取绝对值

print(abs(-12))
12
  1. all()

    可迭代对象内元素全为真则返回True,否则返回False

print(all([1,'2',3,0]))
print(all([]))
False
True
  1. any()

    可迭代对象里面有一个元素为真,则返回True

print(any([0,[],None,{},'',False]))
False
  1. bin()/oct()/hex()

    bin():转化为二进制数

    oct():转化为八进制

    hex():转化为十六进制

print(bin(20))
print(oct(20))
print(hex(20))
0b10100
0o24
0x14
  1. 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']
  1. 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
  1. globals()/locals()

    查看全局变量/查看局部变量

def f1(num):
    x = 10
    print(locals())
    print(num)
    
num = 20
f1(num)   
# print(globals())
{'x': 10, 'num': 20}
20
  1. 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
  1. round()

    四舍五入

print(round(3.4),round(3.5))
3 4
  1. 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]
  1. sum()

    求和

lis = [1,2,3,4,5,6,7]
print(sum(lis))
28
  1. __import__()

    通过字符串导入模块

time = __import__('time')
print(time.time())
1560430597.1571605

面向对象编程

面向对象编程就是将程序封装成一个个函数,然后按照执行顺序进行调用,上一个函数的返回值作为下一个函数的参数传入

就好比工厂生产一样,一步一步的工序,下一道工序要基于上一道工序来做处理,如果上一道工序出现问题,下一道工序就会受影响

优点:将复杂的问题简单化,流程化

缺点:扩展性差

猜你喜欢

转载自www.cnblogs.com/Hades123/p/11019552.html