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的内存。

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

多行注释

用三引号

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

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

变量、数据类型、python内存管理的更多相关文章

  1. 【python测试开发栈】—python内存管理机制(二)—垃圾回收

    在上一篇文章中(python 内存管理机制-引用计数)中,我们介绍了python内存管理机制中的引用计数,python正是通过它来有效的管理内存.今天来介绍python的垃圾回收,其主要策略是引用计数 ...

  2. python内存管理&垃圾回收

    python内存管理&垃圾回收 引用计数器 环装双向列表refchain 在python程序中创建的任何对象都会放在refchain连表中 name = '张三' age = 18 hobby ...

  3. 转发:[Python]内存管理

    本文为转发,原地址为:http://chenrudan.github.io/blog/2016/04/23/pythonmemorycontrol.html 本文主要为了解释清楚python的内存管理 ...

  4. Python内存管理机制及优化简析(转载)

    from:http://kkpattern.github.io/2015/06/20/python-memory-optimization-zh.html 准备工作 为了方便解释Python的内存管理 ...

  5. 【python测试开发栈】python内存管理机制(一)—引用计数

    什么是内存 在开始进入正题之前,我们先来回忆下,计算机基础原理的知识,为什么需要内存.我们都知道计算机的CPU相当于人类的大脑,其运算速度非常的快,而我们平时写的数据,比如:文档.代码等都是存储在磁盘 ...

  6. python内存管理(通俗易懂,详细可靠)

    python内存管理 python3.6.9 内存管理的官方文档 https://docs.python.org/zh-cn/3.6/c-api/memory.html 一.变量存哪了? x = 10 ...

  7. python内存管理总结

    之前在学习与工作中或多或少都遇到关于python内存管理的问题,现在将其梳理一下. python内存管理机制 第0层 操作系统提供的内存管理接口 c实现 第1层 基于第0层操作系统内存管理接口包装而成 ...

  8. Python 内存管理与垃圾回收

    Python 内存管理与垃圾回收 参考文献:https://pythonav.com/wiki/detail/6/88/ 引用计数器为主标记清除和分代回收为辅 + 缓存机制 1.1 大管家refcha ...

  9. 解读Python内存管理机制

    转自:http://developer.51cto.com/art/201007/213585.htm 内存管理,对于Python这样的动态语言,是至关重要的一部分,它在很大程度上甚至决定了Pytho ...

随机推荐

  1. git报错_you are not allowed to push code to protected branches on this project

    问题描述 今天在提交代码的时候,由于使用的是新库,写完代码后,进行push,发现报错 you are not allowed to push code to protected branches on ...

  2. (day51)三、ORM、路由层、版本差异、流程图

    目录 一.ORM关系建立 (一)ForeignKey(一对多) (二)ManyToManyField(多对多) (三)OneToOneField(一对一) 二.django请求生命周期流程图 三.ur ...

  3. IronPython

    当时做FitnesseTest的时候,写了很多和硬件交互的代码,但是后来发现每次都通过启动进程的方式运行python脚本,很费时间. 既然要运行python脚本,在.net平台下可以用IronPyth ...

  4. mysql 数据库信息常用命令

    Mysql查询数据库状态及信息   使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> ...

  5. QSS QPushButton:hover :pressed ...为状态下变更字体颜色(color)无效,变成字体粗细(font-weight)有效???

    //字体颜色变更无效 QPushButton:hover{ font-weight:bold; color:rgba(, , , ); } //字体颜色变更有效 QPushButton#pushBut ...

  6. MySQL中的存储过程、函数与触发器

    一.对待存储过程和函数的态度 优点: 1.存储过程只在创建时进行编译,sql语句则每次执行都需要编译.能提高数据库执行速度. 2.简单复杂操作结合事物一起封装. 3.复用性高. 4.安全性高,可指定存 ...

  7. LeetCode 430:扁平化多级双向链表 Flatten a Multilevel Doubly Linked List

    您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表.这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示. 扁平化列表,使所有结点 ...

  8. JS解决所有浏览器连续输入英文字母不换行问题,包括火狐(转)

    问题描述: <p style="font-size:12px;line-height:30px;">测试数据测试数据</p> p标签内如果输入一长段英文字符 ...

  9. Element-ui 下拉列表 全选 多选时 select全选 新增一个选择所有的选项

    项目里经常会用到,在一个多选下拉框里新增一个选择所有的选项,例如: <!DOCTYPE html> <html lang="en"> <head> ...

  10. Python-绘制3D柱形图

    Python-绘制3D柱形图 本文主要讲解如何使用python绘制三维的柱形图,可以得到图1所示的效果. 图1 源代码如下: import numpy as np import matplotlib. ...