Part 1 变量

一、什么是变量?

字面意思:变化的量。

而在计算机中,我们可以将它理解为世间万物变化的状态。

二、为什么要有变量?

首先,无论是我们还是计算机都需要变量来记录发生的状态的变化,其次计算机程序运行时就会产生一系列的状态变化,所以变量存在很有必要。

三、定义变量

代码中一般这样表示:

x=1
age=18
name=‘Adela'

四、变量的组成

变量由变量名、赋值符号以及变量值组成。

变量名:变量名接受变量值

赋值符号:赋值

变量值:存放数据,记录状态

五、变量名的命名规范

  • 最好不要用中文,英文差的初期可用

  • 变量名由数字/字母/下划线组成,不要以数字开头

  • 不要用无意义的,例如"_"、"*"、"^"等

  • 关键字不要用

['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']

六、变量名的两种风格

驼峰体

  • AgeOfNick

下划线

  • age_of_you

Part 2 常量

一、什么是常量

一般指不变的量,但可以变,不过在计算机中约定俗成的不可变

二、常量的表示方式

AGE=18 全部大写可以定义为常量

Part 3 Python变量内存管理

新建变量会开辟新的内存空间。

一、变量存放位置

变量存放在内存当中

二、Python垃圾回收机制

类比说明:

  • 一个房间--->一个变量值--->10

  • 一个门牌--->一个变量名--->X

  • 新的房间--->11--->旧的门牌--->X

  • 旧的房间--->10--->垃圾回收

成语概括垃圾回收机制:退位让贤

引用计数为0的时候,Python解释器会释放该变量值的内存空间。

引用计数:

有n个变量名指向一个变量值A,则A有n个引用计数。

解释:原变量值的变量名被赋予新的变量值,原变量值会变成垃圾,所以拥有变量名才拥有身份,这个变量名就称为引用计数。

X=10
y=x
x=12
del y #此时10的引用计数为0,12的引用计数为1

三、小整数池

为了避免多个相同变量值的内存占用引起的效率问题(多次回收太麻烦),Python解释器规定一个小整数池[-5,256],在这个全局解释器范围内的小整数对象重复利用时不会被垃圾回收机制回收。

Part 4 变量的三个特征

一、打印

x=10
print(x) #打印变量值
print(id(x)) #打印变量的内存地址
print(type(x)) #打印变量值的数据类型

二、判断变量值是否相等

x=10
y=10
print(x == y) #判断变量值是否相等
x=y=z=10
print(x == y ==z) #判断变量值是否相等

三、判断变量id是否相等

x=10
y=12
print(id(x))
print(id(y))
print(x is y) #判断变量id是否相等

Part 5 花式赋值

一、链式赋值

a=10
b=10
c=10
print(a,b,c) #print(f'a:{a},b:{b},c:{c}')

二、交叉赋值

x=10,y=20
x,y=y,x
print(f'x:{x},y:{y}')

Part 6 注释

一、注释

因为代码可能需要互相借鉴或者共用,所以需要备注一些晦涩难懂的代码,方便别人和自己理解。

快捷键:ctrl+/

二、添加注释的原则

#--->单行注释

‘ ’ ‘&“ ” “--->多行注释

最新文章

  1. oracle 字符串分割
  2. Python>>>使用Python和Pygame创建画板
  3. dedecms调用标签总结(一)
  4. Java学习笔记(二二)——Java HashMap
  5. mysql sqlmap 注入尝试
  6. [cocos2d]关于CCSprite的若干问题与误区
  7. SSH常用命令选项
  8. vim之执行shell命令
  9. ExtJS从入门到后面肯定要抛弃
  10. API接口安全性设计
  11. iOS支付宝,微信,银联支付集成封装(上)
  12. CCF-20170903-JSON查询
  13. springboot 发送邮件+模板+附件
  14. FreeBDS之ipf防火墙
  15. .net 哈希
  16. LoadRunner压测时,出现的问题汇总
  17. Code128条形码如何计算其宽度?如何得出其校验位?
  18. struts2.1.6存在中文乱码的bug
  19. 王立平--Failed to pull selection
  20. ##* %%* linux变量处理

热门文章

  1. ZigBee按键查询实践
  2. Python线程池ThreadPoolExecutor源码分析
  3. 17.Linux命令
  4. 关于爬虫平台的架构实现和框架的选型(二)--scrapy的内部实现以及实时爬虫的实现
  5. 通俗易懂 悲观锁、乐观锁、可重入锁、自旋锁、偏向锁、轻量/重量级锁、读写锁、各种锁及其Java实现!
  6. java基础——入门篇
  7. CentOS 7搭建vsftp(虚拟用户方式登录)
  8. word 2010 页眉 http://jingyan.baidu.com/article/a65957f4b0208624e77f9b55.html
  9. C#编程之自动实现的属性
  10. CentOS7安装高版本gcc