变量与基本数据类型

1、变量
  • 变量的基本使用

    一、什么是变量?

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

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

    三、如何用变量

    原则:先定义,后引用
    name = 'egon'  # 定义-》存
    print(name)  # 引用-》取
    
  • 变量的三大组成部分

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

    原则:变量名的命名应该见名知意
    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:不要用拼音,不要用中文,在见名知意的前提下尽可能短
    
  • 变量名命名风格

    1.纯小写加下划线的方式(在python中,关于变量名的命名推荐使用这种方式)
    age_of_alex = 18
    2.驼峰体
    AgeOfAlex = 18
    
  • 变量值的三个特征

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

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

    值:值本身

  • is与==

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

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

    id不同的情况下,值有可能相同,即两块不同的内存空间里可以存相同的值
    id相同的情况下,值一定相同,x is y成立,x == y也必然成立
    
  • 小整数池[-5,256]

    在Python启动解释器的时候会创建一个小整数池,-5~256之间的这些对象会被自动创建加载到内存中等待调用
    
  • 垃圾回收机制、引用计数

    垃圾回收机制:
    当一个变量值被绑定的变量名的个数为0时,该变量值无法被访问到,称之为垃圾。pycharm在垃圾产生后自动将其从内存中删除,称为垃圾回收机制。
    引用计数:一个值的内存地址被赋值多次不同的变量名
    x = 10  # 10的引用计数为1
    y = x  # 10的引用计数为2
    z = x  # 10的引用计数为3
    
  • 常量:不变的量

    python语法中没有常量的概念,但是在程序的开发过程中会涉及到常量的概念。
    AGE_OF_ALEX = 18  # 小写字母全为大写代表常量,这只是一种约定、规范
    
2、基本数据类型
  • 数字类型:int、float

    整型int
    # # 作用:记录年龄、身份证号、个数等等
    # # 定义:
    age = 18
    
    浮点型float
    # 作用:记录薪资、身高、体重
    # 定义
    salary = 3.3
    height = 1.87
    weight = 70.3
    
  • 字符串类型:str

    # 作用:记录描述性质的状态,名字、一段话
    
    # 定义:用引号('',"",''' ''',""" """,)包含的一串字符
    
    info = '''
    天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,
    另一种人把最好的留到最后吃。
    照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;
    第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。
    不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。
    '''
    ege="""18"""
    name="egon"
    high='175'
    
    # 其他使用:字符串的嵌套,注意:外层用单引号,内存应该用双引号,反之亦然
    print("my name is 'egon'")
    print('my name is \'egon\'')
    
  • 列表类型:list

    索引对应值,索引从0开始,0代表第一个,索引反映的是顺序、位置,对值没有描述性的功能。
    
    # 作用:按位置记录多个值(同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12个月的薪资),并且可以按照索引取指定位置的值
    
    # 定义:在[]内用逗号分隔开多个任意类型的值,一个值称之为一个元素
    
    l = [10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd']
    
  • 字典:dict

    key对应值,其中key通常为字符串类型,所以key对值可以有描述性的功能
    
    # 作用:用来存多个值,每个值都有唯一一个key与其对应,key对值有描述性功能
    
    # 定义:在{}内用逗号分开各多个key:value
    
    d={'a':1,'b':2}
    
  • 布尔:bool

    # 作用:用来记录真假这两种状态
    
    # 定义
    is_ok = True
    is_ok = False
    
    通常用来当作判断的条件,我们将在if判断中用到它
    

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

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

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

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

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

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