Python学习(是我的课堂上学到的东西)不包含课外

2023-09-06课堂

最基本的python之禅与基本的运算符

以下是课堂上讲的内容的实际应用,附带了注释,以便相应的理解

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#Day2
#demo1
"""
这是类型的转换
"""

# int、float、bool转换到字符串
print(str(20)," ",str(99.99)," ",str("True"))
# 验证以上的数据是不是string的类型
print(type(str(20)),type(str(99.99)),type(str(True)))
# 字符串转换int float bool
print(int("28")," ",float("67.00")," ",bool("Flase"))
# 验证
print(int("28")+3," ", float("67.00")+3," ",bool("Flase"))
# int 与 float相互的转换
print(float(12)," ",int(3.14))
# 其他类型转换成bool
print(bool(0)," ",bool(0.0)," ",bool("")," ",bool(None)," ",bool(())," ",bool([])," ",bool({})) # 这里是False
print(bool(1)," ",bool(3.14)," ",bool("jack")," ",bool(({1,2,3}))) # True

#demo2
"""
这是python的命名规范
"""
# 命名规范
name_="jack"
_name="lucky"
address_01="Hong Kong"
# 报错:不能以数字开头
# 01_address="Peking"
# 区分大小写
age=28
Age=30
# 不用关键字
Class="2048"
# 不能使用关键字
# class=""
# 命名规范
stu_id=24324242
stu_name="nm"
stu_address="Form is Macau"
# 不规范:虽然不报错
# 以下省略,中文编程容易出错
print(stu_id,stu_name,stu_address)

#demo3
"""
这是算术运算符的应用
"""
# 这里的是算术运算符的test
a=10
b=6
print("a+b=",a+b)
print("a-b=",a-b)
print("a*b=",a*b)
print("a/b=",a/b) # 除数结果在python上是float
print("a//b=",a//b)
print("a%b=",a%b)
print("a**b=",a**b)

#demo4
"""
这是赋值运算符
"""

# 这里是赋值运算符,变量运算
a=10
b=6
a+=b # a=a+b
print("a=",a)
#a=a/b
a=10
b=6
a/=b
print("a=",a)
a=10
b=6
a//=b
print("a=",a)
a=10
b=6
a%=b
print("a=",a)
a=10
b=6
a**=b
print("a=",a)

#demo5
"""
这是判断运算符
"""
a=10
b=6
print("a==b",a==b)
print("a!=b",a!=b)
print("a>b",a>b)
print("a<b",a<b)
print("a>=b",a>=b)
print("a<=b",a<=b)

#demo6
"""
这是逻辑运算符
"""
a=10
b=6
print(a>b and a!=b)
print(a<b or a>b)
print(not a>b)

#demo7
"""
这是位运算符
"""
a=10
b=6
print("a&b=",a&b)
"""
10=0000-1010
6=0000-0110
a&b=0000-0010=2
"""
print("a|b=",a|b)
"""
a|b=0000-1110=14
"""
print("a^b=",a^b)
"""
a^b=0000-1101=12
"""
print("~a=",~a)
"""
~a=1111-0101(补)》1111-0100(反)》1000-1011=-11
"""
print("~b=",~b)
"""
~b=1111-1001 按照上面的去算 得到1000-0111=-7
"""

#demo8
"""
这是与或非
"""
# and
print("True and True=",True and True)
print("True and False=",True and False)
print("False and True=",False and True)
print("False and False=",False and False)
print("\n\n")
# or
print("True or True=",True or True)
print("True or False=",True or False)
print("False or True=",False or True)
print("False or False=",False or False)
print("\n\n")
# not
print("not True=",not True)
print("not Flase=",not False)

#demo9
"""
这是移位运算符
"""

print("4>>2=",4>>2)
print("4<<2=",4<<2)

上面的就是python相应的运算符的内容,基本是了解了python与java的不同之处,同时也发现了逻辑运算与或非与sql很像。
当然这里的加上点Python之禅,省得写的代码别人看不懂
我觉得确实如此,代码得是别人理解得了的,不论是企业还是自己的学习,都是如此
Python之禅最早由 Tim Peters在Python邮件列表中发表,它包含了影响Python编程语言[3]设计的19条软件编写原则。在最初及后来的一些版本中,一共包含20条,其中第20条是“这一条留空(…)请 Guido 来填写”。这留空的一条从未公布也可能并不存在。这些文本属于公共领域。
Python之禅作为一个信息条款被录入Python增强建议(PEP)的第20条,在Python语言的官方网站也能找到。它还作为复活节彩蛋被包含在Python解释器中。如果输入 import this 就会在Python的编程环境IDLE中显示。

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one— and preferably only one —obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!

以下是翻译

优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)