变量、数据类型、python内存管理
程序员文章站
2022-04-15 15:12:23
pycharm快捷键 变量 什么是变量 变量: 定义世间万物变化的状态 IPO I input 输入(变量) P Process 处理 O Output 输出 变量的组成 1. 变量名:具有描述意义; 接受变量值 2. 赋值符号:赋值,把变量值传给变量名 3. 变量值:具体的值 变量名的规范 1. ......
pycharm快捷键
ctrl + c 复制, 默认复制整行 ctrl + v 粘贴 ctrl + x 剪切 ctrl + a 全选 ctrl + z 撤销 ctrl + f 查找 ctrl + shift + z 反撤销 ctrl + d 复制粘贴选中内容,没有选中默认整行 ctrl + y 删除整行 ctrl + backspace 删除一个单词 ctrl + w 选中一个单词 ctrl + shift + r 全局搜索 shift + f10 运行上一个文件 ctrl + shift + f10 运行当前文件 shift + enter 进入下一行 ctrl + / 整体注释 ctrl + alt + l 格式化代码 home 回到行首 end 回到行尾
变量
什么是变量
变量: 定义世间万物变化的状态
ipo
i --> input --> 输入(变量)
p --> process --> 处理
o --> output --> 输出
变量的组成
- 变量名:具有描述意义; 接受变量值
- 赋值符号:赋值,把变量值传给变量名
- 变量值:具体的值
变量名的规范
- 变量名必须要有意义
- 变量名由数字、字母、下划线组成,不能以数字开头
- 不能以关键字命名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec','finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass','print', 'raise', 'return', 'try', 'while', 'with', 'yield']
定义变量名的两种方式
下划线(python推荐使用)
neo_of_name = 'neo'
驼峰体
neoofname = 'neo'
常量
常量是指不变化的量(变量名大写)
这个不变是约定俗成的
age = 19 age = age + 1 # 这样做就很沙雕了
python内存管理
变量存哪了
当我们在test.py文件里定义一个变量x = 10
,单纯这样写只是几个字符而已,只有当python解释器运行时,才有变量这个意义。这个变量的概念是python解释器提供的。
变量在计算机内存里开辟一个小空间,小空间内存放变量值10,然后内存给这个小空间一个变量名x,x指向10。
python垃圾回收机制
x = 10 x = 11
变量在内存开辟一个小空间,小空间内存放变量值10,变量名x指向10。加上一段代码x = 11
,内存会重新开辟一个空间存放11,然后x会指向11,之前x指向10的连接会断掉。这样10就成了垃圾,python会自动处理这个垃圾,释放10的内存。
name1 = 'rese' name2 = name1 name1 = 'neo'
引用计数
引用计数针对的是变量值, 变量值的引用次数
x = 1000 # 1000的引用次数为1 y = 1000 # 1000的引用次数为2 del x # del删除x,1000的引用次数为1
当一个变量值的引用计数为0时,会触发垃圾回收机制,之前的值会被回收
小整数池
>>> x = 10 >>> id(10) 140704061711472 >>> y = x >>> id(y) 140704061711472 >>> z = 10 >>> id(z) 140704061711472 # 内存地址 >>> x = 1000 >>> id(x) 1619602196368 # >>> x = 1000 >>> id(x) 1619602196496 # 这里内存地址与之前的不同
python实现int的时候有个小整数池,这是为了避免因创建相同的值而申请重复的内存空间带来的效率问题。
python解释器会自动定义[-5, 256]之间的 整数池,这是在内存中写死的。这个范围内的整数被全局调用时,永远不会触发垃圾回收机制。
在pycharm中,这个整数范围是扩大的,它优化了。
变量的三种打印形式
age = 20 # 打印值 print(age) # 打印内存地址 print(id(age)) # 打印数据类型 print(type(age))
数据类型
什么是数据类型
数据类型对变量值做了分类,分成了不同类别
数字类型
整型
作用:描述年龄/id号
定义方式:
age = 21 age = int(21)
使用方法:
x = 2 y = 1 print(x + y) # 加 print(x - y) # 减 print(x * y) # 乘 print(x / y) # 除 print(x % y) # 取余 print(x // y) # 取整 print(x ** y) # 幂运算
当你需要使用如sin/cos/tan
等函数时,怎么办呢?别担心,有方法
使用cmath模块
import cmath print(cmath.sin(10))
浮点型
作用:描述薪资
定义方式:
salary = 3.2 salary = float(3) # 3.0
使用方法:与int整型类似
逻辑比较
>>> x = 1 >>> y = 2 >>> print(x > y) false >>> print(x >= y) false >>> print(x < y) true >>> print(x <= 1) true >>> print(x != y) true >>> print(x == y) false
字符串
作用:描述姓名/性别
定义方式:
name = 'cwz' name = "cwz's name"
使用方法:
str1 = 'neo' str2 = 'zen' print(str1 + ' ' + str2) # 打印结果:neo zen print(str2 * 10) # 打印结果:zenzenzenzenzenzenzenzenzenzen
注释
单行注释
# 打印12 # print(12)
- 解释代码什么意思
- 让后面的代码失效
多行注释
用三引号
''' 写什么东西呢 '''
相当于定义了一个变量不使用