🖼 人工智能学习总目录

🖼 《Python王者归来》小结及目录

12、类

实例、属性、方法、初始化initialization(constructor)

私有属性(private attribute)、私有方法(private method)

@property getter、@sc.setter setter 、@classmethod cls、@staticmethod ()

继承inherit、父类parent、基类base、超类super/子类child、衍生类derived

super().__init__()复制父类属性

多型polymorphism 方法多功能、多重继承mutiple inheritance

(顺序:Child —>Fater —>Uncle —>GrandFather) type()、isinstance(Child,Father)

特殊属性 __doc__文字字符串、__name__=’__main__‘

特殊方法 __str__()实例字符串、__repr__()PythonShell实例调用响应、iter迭代对象、next迭代方法、eq、ne!=、lt<、gt>、le<=、ge>=、add+、sub-、mul*、floordiv//、truedic/、mod%、pow**

1
2
3
4
# 这是注释
''' 这是多行注释 '''
""" 这是多行注释 """
print("Hello! Python") # 打印字符串

13、设计应用模块

random、time、sys、keyword、calendar、collections、pprint、itertools、string

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import random
list = [1,2,3,4,5,6]
random.seed(3)
print(random.random()) # [0,1)随机浮点数
print(random.uniform(0,1)) # [0,1)随机浮点数
print(random.randint(0,1)) # [0,1]随机整数
random.shuffle(list)
print(list) # 打乱
print(random.choice(list)) # 随机选择
print(random.sample(list,3)) # 随机选三个


import time
print(int(time.time())) # 计算1970年1月1日00:00:00至今的秒数
time.sleep(3) # 停3秒
print(time.ctime()) # 系统时间
print(time.asctime()) # 系统时间
print(time.localtime()) # 本地时间列表
print(time.process_time()) # 程序实行时间


import sys
print(sys.version) # Python版本信息
print(sys.version_info)
print(sys.platform) # 计算机系统
print(sys.path) # 环境变量
print(sys.stdin.readline(8)) # 输入8个字符
print(sys.stdout.write('Hello')) # 输出Hello
sys.setrecursionlimit(100)
print(sys.getrecursionlimit())
print(sys.argv) # 当前路径
print(sys.executable) # 执行Python的路径


import keyword
print(keyword.kwlist)
print(keyword.iskeyword('True'))


import calendar
print(calendar.isleap(2020))
print(calendar.leapdays(2020,2040)) # 有多少闰年
print(calendar.calendar(2020)) # 年日历
print(calendar.month(2020,1)) # 月日历
print(calendar.monthcalendar(2020,1)) # 列表
print(calendar.monthrange(2020,1)) # 周几,这个月有多少天
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
from collections import defaultdict
fruits = defaultdict(lambda :10) # 默认值是10或者可以设为int


from collections import Counter
fruits = ["apple","orange","apple"]
fruitsdict = Counter(fruits) # 计数
print(fruitsdict)
print(fruits.most_common(1)) # 最多的1个,填2就是最多的两个


from collections import deque # 双头列表
def palindrome(word):
return word == word[::-1]
def palindrome(word):
wd = deque(word)
while len(wd) > 1:
if wd.pop() != wd.popleft():
return False
return True
print(palindrome("x"))
print(palindrome("abccba"))
print(palindrome("radar"))
print(palindrome("python"))


from pprint import pprint # 一行输出多个元素
print(sys.path)


import itertools
for i in itertools.chain([1,2],['b','c']): # 1,2,b,c
print(i)
for i in itertools.cycle(('a','b','c')): # a,b,c,a,b,c
print(i)
for i in itertools.accumulate((1,2,3,4,5)): # 1,3,6,10,15
print(i)
def mul(x, y):
return (x * y)
for i in itertools.accumulate((1,2,3,4,5),mul): # 1,2,6,24,120
print(i)
x = ['a', 'b', 'c']
r = 2
y = itertools.combinations(x, r)
print(list(y)) # [('a', 'b'), ('a', 'c'), ('b', 'c')]


import string
def encrypt(text, encryDict): # 加密文件
cipher = []
for i in text: # 执行每个字符加密
v = encryDict[i] # 加密
cipher.append(v) # 加密结果
return ''.join(cipher) # 将列表转成字符串

abc = string.printable[:-5] # 取消不可打印字符
newAbc = abc[:] # 产生新字符串拷贝
abclist = list(newAbc) # 转成列表
random.shuffle(abclist) # 打乱列表顺序
subText = ''.join(abclist) # 转成字符串
encry_dict = dict(zip(subText, abc)) # 建立字典
print("打印编码字典\n", encry_dict) # 打印字典

msg = 'If the implementation is easy to explain, it may be a good idea.'
ciphertext = encrypt(msg, encry_dict)

print("原始字符串 ", msg)
print("加密字符串 ", ciphertext)
print(string.digits)
print(string.hexdigits)
print(string.octdigits)
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.ascii_uppercase) # 打印空白字符 ' \t\n\r\x0b\x0c'
1
2
3
4
5
6
7
8
9
10
11
12
13
# 圆周率算法
import random

trials = 1000000
Hits = 0
for i in range(trials):
x = random.random() * 2 - 1 # x轴坐标
y = random.random() * 2 - 1 # y轴坐标
if x * x + y * y <= 1: # 判断是否在圆内
Hits += 1
PI = 4 * Hits / trials

print("PI = ", PI)