天池Python训练营学习笔记Day1
姓名:L.Heoi
时间:2021.04.14
学习内容:天池Python训练营Task 1——Python基础入门:从变量到异常处理
其实本身我在学校已经学习过了Python了,但是就是因为觉得还是基础不够扎实,并且想要学得更深一层,所以就在找关于Python以及机器学习等的学习资料,正好看到了阿里云天池里面有一个相关的训练营,包含了许多的相关内容的,所以我就选择了在天池Python训练营里面进行复习以及更进一步的学习了。
Task 1的学习内容如下:
其实它还是很详细的,也很适合新手去进行学习
简介什么的其实都很简单啦,就是主要就是Python是一种通用的变成语言啦,在机器学习以及科学计算领域有着广泛的应用啦。毕竟是已经学过了,所以在这基础内容里面其实我也是过得非常快的,那我也就快速记录一些以前觉得不是很熟的一些地方吧!
变量、运算符与数据类型
在这里面全是比较基础的内容了,我个人认为就是比较重要的内容就是关于其他运算符的这个了:
【例子】比较的两个变量均指向不可变类型。
a = "hello"
b = "hello"
print(a is b, a == b) # True True
print(a is not b, a != b) # False False
结果:True True
False False
【例子】比较的两个变量均指向可变类型。
a = ["hello"]
b = ["hello"]
print(a is b, a == b) # False True
print(a is not b, a != b) # True False
结果:False True
True False
*注意:
- is, is not 对比的是两个变量的内存地址
- ==, != 对比的是两个变量的值
- 比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
- 对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。
其他在这章节基本都是很基础的东西了,我也是很快就直接过了。
位运算
首先是原码、反码和补码
也就是二进制的三种不同的表现形式啦,然而在计算机内部使用的是补码来表示的。
符号位是指最高位的那个数字,0表示正数,1表示负数,在运算中符号位也参与运算。
然后就是按位运算了
- 按位非操作 ~
~ 1 = 0
~ 0 = 1
~
把num
的补码中的 0 和 1 全部取反(0 变为 1,1 变为 0)有符号整数的符号位在~
运算中同样会取反。
【例子】
00 00 01 01 -> 5
~
---
11 11 10 10 -> -6
- 按位与操作 &
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
综上可知:只有两个对应位都为 1 时才为 1
【例子】
00 00 01 01 -> 5
&
00 00 01 10 -> 6
---
00 00 01 00 -> 4
- 按位或操作 |
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
综上可知:只要两个对应位中有一个 1 时就为 1
【例子】
00 00 01 01 -> 5
|
00 00 01 10 -> 6
---
00 00 01 11 -> 7
- 按位异或操作 ^
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
综上可知:只有两个对应位不同时才为 1
【例子】
00 00 01 01 -> 5
^
00 00 01 10 -> 6
---
00 00 00 11 -> 3
异或操作的性质:满足交换律和结合律
【例子】
A: 00 00 11 00
B: 00 00 01 11
A ^B: 00 00 10 11
B ^A: 00 00 10 11
A ^A: 00 00 00 00
A ^0: 00 00 11 00
A ^B ^A: = A ^A ^B = B = 00 00 01 11
- 按位左移操作 <<
num << i
将num
的二进制表示向左移动i
位所得的值。
00 00 10 11 -> 11
11 << 3
---
01 01 10 00 -> 88
- 按位右移操作 >>
num >> i
将num
的二进制表示向右移动i
位所得的值。
00 00 10 11 -> 11
11 >> 2
---
00 00 00 10 -> 2
以上就是今天所复习的内容啦!!就主要还是打基础为主嘛,明天的话就开始复习逻辑语法以及异常处理啦!加油吧!!