今日内容
今日开始正式学习python语言
套路:是什么,为什么,怎么用
大前提:python中出现的所有语法都是为了让计算机能够具备人的某一功能
变量
-
什么是变量
- 变化的量,指的是事物的状态
- 变:事物是不断发生变化的
- 量:变化的度量
-
为什么要有变量
- 为了让计算机想人一样记住某种状态,状态时可以发生变化的
- 程序执行的本质是一系列的变化,所以需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化
-
变量组成部分
- 变量名:指向等号右侧值的内存地址,用来访问变量值
- 赋值符号:将变量值的内存地址绑定给变量名
- 变量值:代表纪录事物的状态
-
变量的基本使用
-
原则:先定义后引用
-
定义:
name = 'deimos'
在内存里开辟一个内存空间,把变量值放进去,变量名与内存空间关联
-
存不是目的,目的是为了方便地取
-
内存管理:垃圾回收机制
一个变量值当其与变量名关联,可以通过变量名访问,则他是有用的
垃圾:如果这个变量值没有和任何变量名关联,无法被访问到,占用内存,应该被回收。因此引入垃圾回收机制
快捷键 ctrl + d
复制当前行,ctrl + /
注释当前行
引用计数:
-
引用计数增加
x = 10 # 10的引用计数为1,x指向10的内存地址 y = x # 10的引用计数为2,y也指向10的内存地址 z = x # 10的引用计数为3
-
引用计数减少
del
:解除变量名与变量值的绑定关系del x # 解除变量名x与其变量值的绑定关系 10的引用计数变为2 del y # 解除变量名y于10的绑定关系 10的引用计数变为1 z = 12345 # 解除z与10的绑定关系,再建立于123456的绑定关系,10的引用计数变为0,则没有变量名与10绑定,无法访问到10,那么10就没用了,于是被回收
小白色波浪线:pep8标准
变量三个组成部分
变量名,赋值符号,变量值
变量名
如何命名变量?
变量名的命名原则:顾名思义
- 由字母,数字,下划线组成
- 不能以数字开头
- 不能用关键字来命名变量(print,for,break。。。)
- 不要用拼音,不要用中文
命名风格:
-
纯小写 + 下划线_ 形式(推荐)
shop_phone_num,custom_id
-
单词首字母大写
ShopNum,CustomerId
变量值
变量值三个重要特征:id,type,value
-
id:一串数字编号,变量值内存地址的映射,内存地址不同则id不同
shop_num = 666 print(id(shop_num)) 2598526700496
用
id()
来查看变量的id -
type:事物状态的类型各不相同,有数字,有字符等等,变量值也应该有不同的类型对应不同类型的状态
用
type()
来看变量的类型 -
value:值本身
is 与 ==
is和==是运算符
-
is
比较左右两个值的身份id是否相等,值一样,id不一定一样,因为id代表内存地址,同一时刻内是唯一的shop_num = 666 shop_num1 = 666 id(shop_num) is id(shop_num1) # 返回 false # 在pycharm内返回true
id相同,值肯定相同
-
==
比较左右两个值是否相等
小整数池
从python解释器启动的那一步开始,就会在内存中事先申请好一系列内存空间,存放好常用的整数,使用常用整数的时候不会新创建内存地址,而是直接调用已经放好的整数
只要是程序运行中产生的常用整数,无论是变量还是算式结果,都会在已经存好的内存中调用,不会新创地址
y=4
x=3
x+=1
>>> x is y # 返回true
小整数池范围:python解释器中为-5到256
pycharm会突破解释器的范围,扩充小整数池。以python解释器为准
小整数池对部分字符串也有效果,对浮点数无效。仅了解
常量
python语法中没有常量的概念,但是在程序的开发过程中会涉及常量的概念:重力加速度,圆周率。。。
约定俗成用纯大写字母代表常量
基本数据类型
用 type(变量)
来看变量的类型
数字类型 int float
-
整型 int
作用:纪录年龄等整数
定义:直接 变量= 数字
age = 21
-
浮点型 float
作用:纪录薪资,身高体重等小数
定义:直接 变量= 小数
weight = 100.8
数字类型的基本使用
- 数学运算:加减乘除,int 和 float 之间可以数学运算
- 比较:大于小于不等于
字符串类型 str
-
作用:纪录描述性质的信息,住址,一段话。可迭代
-
定义:用引号(’str‘,“str”,或着三引号)
shop_phonenum = '18888888888'
要在字符串中使用引号(字符串嵌套),外层,内层用不同的引号
要在字符串中定义有特殊意义的字符,使用反斜杠
转意
基本使用
- 字符串之间用
+
可以连接,但仅限于字符串与字符串之间(不推荐使用) - 字符串使用
*
代表字符串的重复
列表 list
索引对应值,正向索引从 0 开始,0代表第一个
-
作用:纪录同种属性多个值,并且可以按照索引取指定位置的值
-
定义:在中括号
[]
中,用逗号分隔开任意类型的值,一个值称为一个元素 -
取值:
列表名[索引]
,取值可以嵌套正向索引,第一个值开始,索引是0
负向索引,最后一个值开始,索引是 -1
索引反映的是顺序、位置,对值性质没有描述
字典 dic
以key:value 键-值的形式存值,其中key通常为字符串类型,所以key对值可以有描述作用
-
作用:用来存多个值,每个值都有唯一key与其对应,key具有描述性
-
定义:在花括号
{}
内用逗号分开多个key:value
dic = { 'key1':1, 'key2':2, 'key3':[11,22,33,[44,550],66] }
先把字典当成无序
-
取值
dic['key']
注意要在key 加引号嵌套取值
print(dic['key3'][3][1]) # 输出 550
布尔类型 Boolean
纪录真,假两种状态
真:True;假:False
- 作用:用于条件判断
- 定义:所有数据类型都自带布尔值,0,none,空 表示假,其余全为真