- 本笔记为阿里云天池龙珠计划python训练营的学习内容,链接为AI训练营Python-阿里云天池 (aliyun.com)
- 1.位运算-移位运算
2.可变类型与不可变类型的比较
【例子】比较的两个变量均指向不可变类型。
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 对比的是两个变量的内存地址
- ==, != 对比的是两个变量的值
- 比较的两个变量,指向的都是地址不可变的类型(Number(数字)、String(字符串)、Tuple(元组)),那么is,is not 和 ==,!= 是完全等价的。
- 对比的两个变量,指向的是地址可变的类型(Set(集合)、List(列表)、Dictionary(字典)),则两者是有区别的。
不可变类型:不可变数据类型在第一次声明赋值声明的时候, 会在内存中开辟一块空间, 用来存放这个变量被赋的值, 而这个变量实际上存储的, 并不是被赋予的这个值, 而是存放这个值所在空间的内存地址, 通过这个地址, 变量就可以在内存中取出数据了.当我们改变这个变量的赋值时, 只是在内存中重新开辟了一块空间, 将这一条新的数据存放在这一个新的内存地址里, 而原来的那个变量就不在引用原数据的内存地址而转为引用新数据的内存地址了.
可变类型:可变数据类型是指变量所指向的内存地址处的值是可以被改变的。
3.运算符优先级
运算符的优先级
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
~+- | 按位翻转,一元加号和减号 |
* / % // | 乘,除,取模和取整除) |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位‘AND’ |
^| | 位运算符 |
<=<>>= | 比较运算符 |
<>==!= | 等于运算符 |
=%=/=//=-=+==*= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
4.变量
- 在使用变量之前,需要对其先赋值。
- 变量名可以包括字母、数字、下划线、但变量名不能以数字开头。
- Python 变量名是大小写敏感的,foo != Foo
5.数据类型与转换
类型 | 名称 | 示例 |
---|---|---|
int | 整型 <class 'int'> | -876, 10 |
float | 浮点型<class 'float'> | 3.149, 11.11 |
bool | 布尔型<class 'bool'> | True, False |
- 转换为整型
int(x, base=10)
- 转换为字符串
str(object='')
- 转换为浮点型
float(x)
Python 里面万物皆对象(object),整型也不例外,只要是对象,就有相应的属性 (attributes) 和方法(methods)。
5.1.浮点数的精确小数位:
想保留浮点型的小数点后 n
位。可以用 decimal
包里的 Decimal
对象和 getcontext()
方法来实现。
import decimal
from decimal import Decimal
decimal.getcontext().prec = 4 #精确到4位
c = Decimal(1) / Decimal(3)
print(c)
0.3333
5.2 bool(x)
1. 对于数值变量(整型、浮点型), 0 , 0.0 都可认为是空的--false,其余为true。
2. 对于容器变量(字符串、元组、列表、字典和集合),里面没元素就是空的--false,其余为true。
5.3 获取类型信息
- 获取类型信息
type(object)
print(type(1)) # <class 'int'>
print(type(5.2)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type('5.2')) # <class 'str'>
获取类型信息 isinstance(object, classinfo),判断两个类型是否相同推荐使用 isinstance()
print(isinstance(1, int)) # True
print(isinstance(5.2, float)) # True
print(isinstance(True, bool)) # True
print(isinstance('5.2', str)) # True
6.print函数
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
end=' ',end里面是什么,本行输出完后就已什么结尾。
练习题:
1. 怎样对python中的代码进行注释?
方法1:ctrl+/
方法2:#
方法3:''' '''
2. python有哪些运算符,这些运算符的优先级是怎样的?
算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符
按优先级从上到下,依次排列
运算符 | 描述 |
---|---|
** | 幂 |
~ | 按位“取反” |
*、/、%、// | 乘、除、取模、取整除 |
+、- | 加、减 |
>>、<< | 右移、左移 |
& | 按位“与” |
^、| | 按位“异或”、按位“或” |
<=、<、>、>= | 比较运算符 |
==、!= | 等于、不等于 |
=、%=、/=、//=、-=、+=、*=、**= | 赋值运算符 |
is、is not | 身份运算符 |
in、not in | 成员运算符 |
and or not | 逻辑运算符 |
3. python 中 is , is not 与 == , != 的区别是什么?
- is, is not 对比的是两个变量的内存地址
- ==, != 对比的是两个变量的值
4. python 中包含哪些数据类型?这些数据类型之间如何转换?
数据类型
int,float,bool
转换
int(),str(),float()