记录一下python学习过程
1.变量声明
编译型语言很多都不用声明数据类型 直接赋值即可使用
以下方式都可以给是个数据赋值
a = 10
a = b = 10
a , b = 10 , 100
2.打印日志
使用print传参打印日志
a = 10
print(a)
print('hello')
3.数据类型判断
使用isinstance(data, type)方法可以判断数据data是否为type类型
使用type(data)方法可以返回data的数据类型
a = "test"
if isinstance(a,str):
print("a是str类型")
print(type(a))#输出<class 'str'>
4.内存地址查询
id(obj)方法可以得到obj对象的内存地址
5.导包
import 关键字 使用import将某包导入工程
6.基本数据类型
虽然不必声明数据类型,但与其他语言一样,数据确有其类型
#空
n = None
#整型 int
a = 1
#浮点型 float
b = 1.0
#bool类型 注意:首字母是大写的
bool1 = True
bool2 = False
#以下都为字符串类型 str
c = '1'
d = "1"
e = '''1'''
f = """1"""
#列表 list
g = [1, 2, 3]
#集合 set
h = {1, 2, 3}
#字典 dict
h = {1 : 123, 2 : 234, 3 : 345}
#元组 tuple
i = (123, 456, 789)
值得一提的事:
对于int类型数据,python使用整数数组来实现大整数运算,因此不会出现1000000 * 1000000 = -727379968的情况。像100的100次方这样的大整数也能在python种正确显示出来。
整数对象是不可变对象,整数运算结果是以新对象返回的。因此为了照顾性能,python有了小整数对象池,其中包含了-5~256这些可能常用的比较小的整数。因此当声明两个变量的值都为1时,他们的内存地址相同。
python对float类型的数据做了封装,声明时会经过一系列的对象创建过程。因此 Python 在float对象销毁后,会将其放入一个 链表(空闲对象缓存池)。后续需要创建时,先到链表中取,避免频繁的分配内存。
7.运算符
7.1 算数运算符 与 赋值运算符
描述 | 算数运算符 | 赋值运算符 |
---|---|---|
加 | + | += |
减 | - | -= |
乘 | * | *= |
除 | / | /= |
模 | % | %= |
乘方 | ** | **= |
整除(向下取整) | // | //= |
7.2 关系运算符
描述 | 符号 |
---|---|
大于 | > |
小于 | < |
大于等于 | >= |
小于等于 | <= |
全等于 | == |
不等于 | != |
7.3逻辑运算符
描述 | 写法 |
---|---|
与 | and |
或 | or |
非 | not |
7.4运算符优先级
描述 | 符号(同级按照代码顺序越左越先) | 优先级(越大越先) | 结合性(表示优先看他的那一边) |
---|---|---|---|
小括号 | () | 19 | 无 |
索引 | [](例如 A[1]) | 18 | 左 |
属性索引 | .(例如 A.attr) | 17 | 左 |
乘方 | ** | 16 | 左 |
取反 | ~ | 15 | 右 |
符号 | +, - (表示正负,而非加减) | 14 | 右 |
乘除运算符 | *, /, %, // | 13 | 左 |
加减运算符 | +, - | 12 | 左 |
位移 | <<, >> | 11 | 左 |
按位与 | & | 10 | 右 |
按位异或 | ^ | 9 | 左 |
按位或 | | | 8 | 左 |
比较运算符 | < ,<=, >, >=, !=, == | 7 | 左 |
is关键字 | is, is not | 6 | 左 |
in关键字 | in, not in | 5 | 左 |
逻辑非 | not | 4 | 右 |
逻辑与 | and | 3 | 左 |
逻辑或 | or | 2 | 左 |
逗号 | , | 1 | 左 |