变量&基本数据类型      (全为重点)
    1、变量
        变量的基本使用
        变量的三大组成部分
        变量名命名规范
        变量名命令风格
        变量值的三个特征
            id
            tpye
            值

        is与==
        小整数池
            
        垃圾回收机制之引用计数
    
        常量

    2、基本数据类型
        数字类型:int、float
        字符串类型
        列表类型
        字典

----------上节课复习----------
解释器跟语言的关系:
    1、python解释器是一款专门用来解释python这门语言的语法风格并执行
    2、python语言编写的程序最终都是被解释器执行的,所以python语言更多的都是在调用python解释器的功能,解释器性能的高低,很大程度决定了python程序的执行效率的高低

-----------今日内容-----------

讲解套路:
    1、XXX是什么?(what)
        提取知识点名词中的关键字来加以解释
    2、为什么要有它?(why)
        大前提:
            python中语言中出现的所有语法都是为了让计算机能够像人一样去做
    3、如何用?(how)
        
------------正课------------

变量&基本数据类型      (全为重点)
    一、变量
        what:可以变化的事物的状态
        why:为了让计算机记忆可以发生变化的事物
        how:
            1、变量基本使用(原则:先定义,后引用)
                eg:name = 'egon'  # 定义---》存;内存里定义了一个egon的小房间,捆绑房间号name,用房间号可以找到数值
                    print(name)  # 引用---》取;用房间号可以找到里面的值

###!!!编程当中定义变量就是申请内存,不用的时候需要清理内存,不然会内存溢出。

            2、内存管理:垃圾回收机制
                没有关联任何变量名的值,垃圾指变量值不被任何变量名所绑定,无法被访问到

                垃圾回收机制之引用计数
                    2.1、引用计数增加
                        增加同一个值与多个变量名的捆绑关系
                        x = 10  # 10的引用计数位1
                        y = x  # 10的引用计数为2
                        z = x  # 10的引用极速位3
                    2.2、引用计数减少
                        减少同一个值与n个变量名的捆绑关系
                        del x  # 结束变量名x与值10的绑定关系,10的引用计数变为2,打印与y&z能访问到
                        del y  # 10的引用计数变为1,z还能访问到
                        z = 12345  # 程序运行自上而下,先把跟10的绑定关系解除,跟12345绑定;10身上的引用计数变为0,此时10这个值变为垃圾,python会自动清除

        变量的三大组成部分
            1、变量名=》指向等号右侧值的内存地址,用来访问这个值
                1.1、原则:简单有意义,见名知意。在见名知意的前提下,尽可能短。
                1.2、命名规范:
                    1、只能是字母、数字或下划线的任意组合
                    2、不能是以数字开头
                    3、不能使用python当中的关键字(保留字符)
                1.3、命令风格:
                    1、纯小写+下划线(python中,推荐使用这种命名方式)
                        eg:age_of_alex = 73
                    2、驼峰体(不使用下划线,每个单词首字母用大写的方式):
                        eg:AgeOfAlex = 73
###!!!不要用拼音以及中文,尽管不影响程序正常的运行,但是约定俗成,使用英文。

            2、赋值符号=》将变量值的内存地址绑定给变量名

            3、变量值=》记录的事物的状态
                三个特征:
                    3.1、id:反应变量值的内存地址,内存地址不同则id不用(不是内存地址,而是内存地址的编号)
                        eg:print(id(name))
                    3.2、type(类型):不同类型的值用来表示记录不同的状态
                        eg:name = 'egon'
                           age = 18
                           salary = 3.1
                           print(type(name))
                    3.3、value(值):


        is与==
            eg:x = 'info : egon : 18'
               y = 'info : egon : 18'
               值相等,ID不同。两个不同的内存地址里,存放的值一样

            is:比较左右两个值,身份id是否相等
                eg:>>>x is y
                   False                
            ==:比较左右两个值,他们的值是否相等
                eg:>>>x == y
                   True

        小整数池:从python解释器启动一颗开始,就会在内存中实现申请好一系列内存空间存放好常用的整数(-5到256)
            eg:m = 10
               n = 10

               >>>m is n
               True
            为了优化IO操作,例如这个常用整数10,解释器已经在内存申请好这个小房间,所有赋值的变量名的值为(-5到256),is的结果都为True。
            而pycharm扩大了小整数池(-5到256)的范围,在内存申请的范围更大。
###!!!具体以解释器的结果为准,因为程序真正使用是在解释器的环境下。
               
        常量:不变的量
###!!!python语法中没有常量的概念,但在程序开发过程中会设计到常量的概念
            eg:π&重力加速度
               AGE_OF_ALXE = 73  # 约定俗成,小写之母全为大写代表常量。一定要改也可以改,但是是个人问题。

    二、基本数据类型
        1、数字类型
            1.1、int(整型)
                作用:记录整数型的数值
                定义:age = 18
            1.2、float(浮点型)
                作用:记录小数型的数值
                定义:salary = 3.3
                     height = 1.87
                     weight = 70.3
            1.3、数值类型的其他使用
                level = 1
                level += 1
                print(level)
                print(10+3.3)
###!!!int与float之间可以相加(因为都是属于数字类型的);字符串与字符串相加,列表类型与列表类型也可以相加,但都仅限于同种类型才能相加。

        2、字符串类型(str)
            作用:记录描述性质的状态,描述人类能够识别的事物状态
            定义:用引号(单,双,三单,三双)包含的一串字符,哪怕只是纯数字
            其他使用:
                字符串嵌套:外层用单引号,内层用双引号;反之亦然。
                          或者使用\转意符:
                            eg:print ('my name is \'egon\'')
                字符串相加:效率极低
                            eg:print ('my name is '+'egon')
                字符串也可相乘:
                            eg:print ('='*20)

        3、列表类型(索引对应值,索引从0开始,0代表第一个,倒着取最后一个为-1)
            以上类型的赋值只能存一个值,存多个值
                eg:hobbies = ['read','music','play']
            作用:按位置记录多个值,并且可以按照索引取值
            定义:在[]内用逗号分开,多个任意类型的值,一个值称之为一个元素
                eg:l = [10,3.1,'aaa',['bbb','ccc'],'ddd']
            用法:
                取值:
                    eg:print (l[0])  # 取列表l中的第一个元素
                嵌套取值:
                    eg:print (l[3][1])  # 取列表l中的子列表中的第二个元素
                倒数取值:
                    eg:print (l[-1])  # 取列表l中的最后一个元素

        4、字典
            列表索引反映的是顺序、位置,对值没有描述功能
            key对应值,key通常位字符串类型,对值可以有描述性的功能
            作用:用来存多个值,每个值都有唯一一个key与其对应,key对值有
            定义:在{}内用逗号分开多个key:value
                eg:{'a':1,'b':2}

            取值:
                eg:print (d['a'])

        5、布尔类型(bool)
            作用:用来记录真假这两种状态
            定义:
                eg:is_ok = True
                   is_ok = Flase
            使用:通常用来当做判断的条件,将在if判断中使用到








关于pycharm快捷键的一些使用part01:
ctrl+d:复制当前行代码到下一行
ctrl+?:快速注释
pycharm当中下划线,红的是语法错误,白色的是代码不规范
PEP8:是pycharm当中美化
pycharm格式化代码:code--->reformat code