Day4 变量与基本数据类型

一、引入

我们学习python语言是为了控制计算机、让计算机能够像人一样去工作,所以在python这门语言中,所有语法存在的意义都是为了让计算机具备人的某一项技能, 
这句话是我们理解后续所有python语法的根本。

二、变量

1、什么是变量:变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等…

2、为什么要有变量:为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的,详细地说程序执行的本质就是一系列状态的变化,变是程序执行的直接体现.
   所以我们需要有一种机制能够反映或者说是保存下来程序的执行和状态的变化。

3、变量定义的三部分组成:
   
   ①变量名:相当于门牌号,指向值所在地内存地址,是访问到值的唯一方式。
   ②=: 为赋值符号,用于将变量值的内存地址绑定给变量名。
   ③变量值:是我们存的数据,反映的是事物的状态。

三、怎么使用变量

1、先定义后引用
例:name = 'sailan'  定义==》存       
    print(name)      引用==》取

2、变量的命名规范:
变量名应该见名知意,变量名只能是字母、数字或下划线的任意组合,变量名的第一个字符不能是数字,关键字不能声明为变量名,常用关键字如下;
['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']

3、变量名的命名风格:

①驼峰体 例:Age_Of_Sailan=20

②纯小写加下划线 例:age_of_sailan=20

4、变量值的三大特性:

①id:反应的是变量在内存中的唯一-编号, 内存地址不同id肯定不同。

②type:变量值的类型。

③value:变量值本身。

查看变量值三大特性的方式如下,我们将会在运算符中用到变量值的三大特性;
例:
   x=' Info sailan:18 '
   id(x), type(x),x 
   4376607152,<class ' str'>, 'Info sailan:18 '

5、常量

什么是常量:是指程序运行过程中不会改变的量。

为什么要有常量:程序在运行过程中有些值不因被改变比如圆周率3.141592653…

python怎么用常量:在python中没有专门的语法定义常量,约定俗成全部用大写的变量名定义常量(如:PI=3.14159),所以单从语法的层面去讲,常量的使用与变量完全一致。

四、基本数据类型

1、整形int
作用:用来记录年龄、出生年月、身份证号等整数相关的状态。
例:age = 20
    birthday = 2000

2、浮点型float
作用:用来记录身高、薪资等小数相关的状态
例:height = 1.82
   salary = 1.2
3、数字类型的使用

①数学运算
例:level = 1
    level = level+1
    level = 2

②比较大小
例:x = 2
    y = 3
    x > y
    false

3、字符串类型str
作用:用来定义人的名字性别等描述相关的状态。
例:name = ‘sailan’
   sex = ‘man’
ps用单引号、双引号、多引号都可以定义字符串,本质没有区别,但需要考虑到引号嵌套的配对问题,内层有单引号,外层就要用双引号,多引号可以写多行字符串。
(例:print("my name is 'egon'"))
 字符串之间可以相加,但仅限于str与str之间进行,代表字符串的拼接,了解即可,不推荐使用,因为str之间的相加效率极低。
 (例:name = ‘sailan’
      age = ‘20’
      name+age
      ‘sailan20’)
4、列表list
作用:如果我们需要用一一个变量记录多个学生的姓名,用数字类型是无法实现,字符串类型确实可以记录下来,比如stu_ names='张三 李四五',但存的目的是为了取,
此时若想取出第二个学生的姓名实现起来相当麻烦,而列表类型就是专门用来
记录多个同种属性的值(比如同一一个班级多个学生的姓名、同-一个人的多个爱好等),并且存取都十分方便。
例:
定义:stu_ names=[ "张三”,'李四','王五']
使用:列表类型是用索引来对应值,索引代表的是数据的位置,从0开始计数
stu_ names=[ "张三”,'李四",王五']
stu_ names [0]
‘张三’
stu_ names[1]
'李四'
stu_ names[2]
“王五‘
列表可以嵌套,嵌套取值如下
students_ info=[['tony' ,18,['jack" ,]],['jason' ,18,['play',' sleep']]]
students_ info[0][2][0] #取出第一个学生的第一个爱好
'jack'

5、字典dict
作用:如果我们需要用一个变量记录多个值,但多个值是不同属性的,比如人的姓名、年龄、身高,用列表可以存,但列表是用索引对应值.
的,而索引不能明确地表示值的含义,这就用到字典类型,字典类型是用key: value形式来存储数据,其中key可以对value有描述性的功能。
例:
定义:person_ info={' name':'tony','age' :18,' height' :185.3}
使用:字典类型是用key来对应值,key可以对值有描述性的功能,通常为字符串类型
person_ info={'name' :'tony', ' age ' :18,'height' :185.3}
person _info[ ' name ']
' tony '
person_ info[ 'age']
18
person_ info['height']
185.3
字典可以嵌套,嵌套取值如下
students=
{' name':'tony',' age' :38, 'hobbies':['play',' sleep'l]},
{'name':'jack', ' age' :18,'hobbies' :['read', 'sleep']},
{'name' :'rose', ' age' :58, 'hobbies' :['music','read','sleep']}:
students[1][' hobbies'][1] #取第二个学生的第二个爱好
' sleep '

6、布尔bool
作用:记录真假两种状态。
例:
   定义:is_ok = True
         is_ok = False
         print(type(is_ok))
         bool

五、其他

1、小整数池[-5,256]从python解释器启动那一刻开始,就会在内存中事先申请好一系列内存空间存放好常用的整数。

2、is与==
is:比较左右两个值身份id是否相等。
==:比较左右两个值他们的值是否相等。

3、内存管理:垃圾回收机制;
垃圾:当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾。

引用计数增加与减少:(del解除变量名与值的绑定关系)
例:
    x = 10 10的引用计数为1
    y = x  10的引用计数为2
    z = x  10的引用计数为3
    del x  解除变量名x与值10的绑定关系,10的引用计数变为2
    del y  10的引用计数变为1,引用计数一旦变为0其占用的内存地址就应该会被解释器的垃圾回收机制回收。

六、总结

 如何选择合适的类型来记录状态:
 1、选取的类型是否可以明确标识事物的状态
 2、存不是目的,存的目的是为了日后取出来用,并且方便的用
 3、把自己想象成一台计算机,如果我是计算机,我会如何以何种形式把事物的状态记到脑子里
 然后再去python中找相应的数据类型来让计算机像自己一样去记下事物的状态。

2020/3/04/

猜你喜欢

转载自www.cnblogs.com/200024mc/p/12421948.html