欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

变量、数据类型、python内存管理

程序员文章站 2022-07-09 20:50:25
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 --> 输出

变量的组成

  1. 变量名:具有描述意义; 接受变量值
  2. 赋值符号:赋值,把变量值传给变量名
  3. 变量值:具体的值

变量名的规范

  1. 变量名必须要有意义
  2. 变量名由数字、字母、下划线组成,不能以数字开头
  3. 不能以关键字命名
['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的内存。

变量、数据类型、python内存管理

name1 = 'rese'
name2 = name1
name1 = 'neo'

变量、数据类型、python内存管理

引用计数

引用计数针对的是变量值, 变量值的引用次数

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)
  • 解释代码什么意思
  • 让后面的代码失效

多行注释

用三引号

​'''
写什么东西呢
​'''

相当于定义了一个变量不使用