Loading

day 4 变量,基本数据类型

1 什么是变量?

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

2 为什么要有变量?

为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的

  • 详细地说:

    程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程

3 如何用变量

3.1 变量基本使用

原则:先定义,后引用

 name = 'egon'  #定义-》存
 print(name)  #引用-》取
 age = 18
 print(age)

3.2 内存管理:垃圾回收机制

  • 垃圾:当一个变量值被绑定的变量名的个数为 0 时,该变量值无法被访问到,称之为垃圾

  • 引用计数增加

    x = 10  #10 的引用计数为 1
    y = x  #10 的引用计数为 2
    z = x  #10 的引用计数为 3
    
  • 引用计数减少

    del x # 解除变量名 x 与值 10 的绑定关系,10 的引用计数变为 2

3.3 变量有三大组成部分

I:变量名=》是指向等号右侧值的内存地址的,用来访问等号右侧的值
II:赋值符号:将变量值的内存地址绑定给变量名
III:变量值:代表记录的事物的状态

3.4 变量名的命名的规则

  • 原则:变量名的命名应该见名知意

    ​ 4.1. 变量名只能是 字母、数字或下划线的任意组合

    ​ 4.2. 变量名的第一个字符不能是数字

    ​ 4.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']

ps:不要用拼音,不要用中文,在见名知意的前提下尽可能短

3.5 变量名的命名风格

5.1 纯小写加下划线的方式 (在 python 中,关于变量名的命名推荐使用这种方式)

5.2 驼峰体

3.6 变量值三个重要的特征

id:反映的是变量值的内存地址,内存地址不同 id 则不同

type:不同类型的值用来表示记录不同的状态

value:值本身

3.7 is 与==

is:比较左右两个值身份 id 是否相等

==:比较左右两个值他们的值是否相等

id 不同的情况下,值有可能相同,即两块不同的内存空间里可以存相同的值

id 相同的情况下,值一定相同,x is y 成立,x == y 也必然成立

3.8 了解:小整数池[-5,256]

从 python 解释器启动那一刻开始,就会在内存中事先申请 好一系列内存空间存放好常用的整数

>>> m=10
>>> n=10
>>> id(m)
4562619328
>>> id(n)
4562619328

3.9 常量:不变的量

注意:python 语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念

AGE_OF_ALEX = 73 #小写字母全为大写代表常量,这只是一种约定、规范

4 基本数据类型

整型 int

作用:记录年龄、身份证号、个数等等

定义:

age = 18

print(type(age))

浮点型 float

作用:记录薪资、身高、体重

定义

salary = 3.3

height = 1.87

weight = 70.3

print(type(height))

  • 数字类型的其他使用

    level = 1

    level=level + 1

    print(level)

    print(10 *3)

    print(10 + 3.3) #int 与 float 之间可以相加

    age = 19

    print(age > 18)

字符串类型 str

作用:记录描述性质的状态,名字、一段话

定义:用引号('',"",''' ''',""" """,)包含的一串字符

​ info = '''天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,另一种人把最好的留到最后吃。照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。'''

  • 其他使用:

    字符串的嵌套,注意:外层用单引号,内存应该用双引号,反之亦然

     print("my name is 'egon'")
    
     print('my name is 'egon'')
    

    代表字符串的拼接,了解即可,不推荐使用,因为 str 之间的相加效率极低

    print('my name is '+'egon')
    
    print('='*20)
    
    print('hello world')
    
    print('='*20)
    

列表

​ 列表:索引对应值,索引从 0 开始,0 代表第一个

​ 作用:按位置记录多个值(同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12 个月的薪资),并且可以按照索引取指定位置的值 定义:在 [ ] 内用逗号分隔开多个任意类型的值,一个值称之为一个元素,索引反映的是顺序、位置,对值没有描述性的功能。

l = [10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd']

 print(l)

 print(l[1])

 print(l[2])

 print(l[3][1])

 print(l[4])

 print(l[-1])

 hobbies='read music play'

 print(hobbies)

 hobbies = ['read', 'music', 'play']

 print(hobbies[1])

字典

字典类型:key 对应值,其中 key 通常为字符串类型,所以 key 对值可以有描述性的功能

作用:用来存多个值,每个值都有唯一一个 key 与其对应,key 对值有描述性功能

定义:在{}内用逗号分开各多个 key:value

 d={'a':1,'b':2}

 print(type(d))

 print(d['a'])

 info={

 "name":'egon', "age":18,

 "gender":'male',

 "salary":19

 }

 print(info["salary"])

students_info=[

 {"name":'egon1','age1':19,'gender':'male'},

 {"name":'egon2','age1':19,'gender':'male'},

 {"name":'egon3','age1':19,'gender':'male'},

]

print(students_info[1]['gender'])

布尔 bool

  • 作用: 用来记录真假这两种状态

  • 定义

is_ok = True

is_ok = False

  • 其他使用

通常用来当作判断的条件,我们将在 if 判断中用到它

五、总结:如何选择合适的类型来记录状态

1、选取的类型是否可以明确标识事物的状态

2、存不是目的,存的目的是为了日后取出来用,并且方便的用

3、把自己想象成一台计算机,如果我是计算机,

​ 我会如何以何种形式把事物的状态记到脑子里

​ 然后再去 python 中找相应的数据类型来让计算机像自己一样去记下事物的状态

posted @ 2021-12-03 08:52  maju  阅读(44)  评论(0)    收藏  举报