• 2.4 变量标识符


    image-20221118225131027

    1. 对象

    对象: 是存储在内存中的一个实体.
    Python 中的所有数据都是对象, 包括: 数字, 字符串, 列表, 元组, 集合, 字典, 函数, 类等...
    * 通常当提到 '值' , '数据', '对象' 的时候, 指的都是同一个概念.
    
    • 1
    • 2
    • 3

    2022-11-09_01380

    2. 变量

    2.1 变量的概念
    变量: 在计算机中是存储值的抽象概念, 即存储会变化的值.
    
    程序执行的本质就是一系列状态的变化, 变是程序执行的直接体现, 需要有一种机制能够将其够记录下来.
    变量可以让计算机拥有记录事物状态的能力.
    
    • 1
    • 2
    • 3
    • 4
    2.2 使用原则
    变量的基本使用原则是 '先定义, 后引用' , 没有定义直接使用会抛出名称错误.
        定义: 将值赋予变量的过程, 需要使用赋值语法.
        引用: 访问值的方式, 通过变量访问对象.
    
    • 1
    • 2
    • 3
    赋值语法: num = 1
         num  变量名, 对象的标签, 通过标签访问对象.
         =    赋值符号, 让变量指向对象, Python '=='是等号.
         1    变量值, 是一个对象.
         
    赋值语法执行过程:
    * 1. 创建对象: 在内存中创建了一个对象 1 .
    * 2. 绑定对象: 在内存中创建了一个名为 num 的变量, 并让它指向对象.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    image-20221109205540747

    Python 中变量并不是直接存储对象, 而是存储'对象的内存地址', 也就是指针.
    '对象'保存在内存的'堆区', '变量'保存在内存的'栈区'.
    
    • 1
    • 2
    将变量写在 print() 的括号中, 将对象打印到屏幕.
    
    • 1
    # 1. 定义变量
    num = 1
    
    # 2. 引用对象
    print(num)  # 1
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    2.3 名称错误
    变量没有定义直接使用会抛出名称错误.
    
    • 1
    print(num)  
    
    
    • 1
    • 2
    Pycharm 会检测代码的语法, 当检测代码错在语法错误时会给出提示. 
    程序在执行的时候是会变化的, 这个提示仅供参考, 并非百分百准确.
    
    • 1
    • 2

    2022-11-18_01555

    代码运行之后, 解释器会对代码进行语法检测, 能被检测出问题的都是'语法错误', 
    经过语法检测的代码才会被真正的翻译执行, 执行中报错则是'逻辑错误'.
    
    • 1
    • 2

    2022-11-18_01556

     NameError: name 'xxx' is not defined.
     名称错误:未定义名称“xxx”.
    
    • 1
    • 2
    2.4 三大特征
    对象具有3个基本特征:
    * 1. 本征值(identity), 对象在内存中的唯一编号,也称为'身份标识',
          CPython 解释器而言是内存地址, id值是由16进制内存地址转10进制的结果.
    * 2. 类型 (type), 对象的数据类型.
    * 3.  (value), 对象本身.
    * 变量本身没有数据类型的, 通常会听到'变量类型', 指的使变量所引用的对象的类型.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    内置 id()    函数: 返回对象的id值.
    内置 type()  函数: 返回对象的数据类型.
    内置 print() 函数: 打印对象.
    
    • 1
    • 2
    • 3

    image-20221118181524989

    # 定义变量
    num = 1
    
    # 打印对象
    print(num)  # 1
    
    # 打印对象的id
    print(id(num))  # 1660765563184
    
    # 打印对象的内存地址 10进制转16进制
    print(hex(id(num)))  # 0x1fedd396930
    
    # 打印对象的数据类型
    print(type(num))  # 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    2.5 删除变量
    del 关键字断开变量与指针的绑定关系.
    断开引用关系之后, 没有绑定指针的变量, 不能在使用, 
    否则会报错: NameError: name 'xx' is not defined.
    
    • 1
    • 2
    • 3
    # 定义变量
    num = 1
    
    # 引用变量
    print(num)
    
    # 删除变量与指针的绑定关系
    del num
    
    # 报错: NameError: name 'num' is not defined
    print(num)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3. 常量

    常量是计算机中存储值的抽象概念, 即存储不能改变的值.
    Python 中没有真正意义上的常量, Python 开发者们墨守成规的将全大写的变量名看成是常量.
    将程序中全局不会改变的值绑定给'常量'.
    
    • 1
    • 2
    • 3
    # 定义'常量' 变量名全大写.
    IP = "127.0.0.1"
    
    # 引用'常量'
    print(IP)  # 127.0.0.1
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4. 标识符

    Python 中变量, 常量, 函数, 类等对象起的名字就是'标识符'.
    
    • 1
    4.1 命名规范
    命名原则:
    * 1. 只能由数字, 字母, 下划线组成.
    * 2. 不能以数字开头.
    * 3. 不能与 Python 关键字冲突, 可以通过 Ketword 模块查看保留字关键字.
    
    注意点: 
    1. 命名做到"见名知意", 不管名称多长.
    2. 新版本解释器支持变量名为汉字, 不建议去使用.
    3. 名称严格区分大小写, 例如: Num  num 是两个不同的变量.
    4. Python 中下滑线开头的变量有特殊的用法.
       单独使用下划线 '_' 可以表示一个临时值.
       单下划线开头 _xx  代表禁止外部访问的类成员, 需通过类提供的接口进行访问.
       双下划线开头 __xx 代表类的私有成员.
       双下划线开头和结尾 __xx__  Python 特殊方法专用的标识.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    4.2 保留字关键字
    # 导入 keyword 模块
    import keyword
    
    # 打印 Python 关键字
    print(keyword.kwlist)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    运行工具窗口显示:
    ['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await',  'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',  'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass',  'raise', 'return', 'try', 'while', 'with', 'yield']
    
    • 1
    • 2
    Python 为保留字关键字 定义了功能, 如果自己定义标识符名称重复后, 标识符的内置的功能就会被覆盖.
    
    • 1
    4.3 命名冲突
    print  Python 内置的输出函数, 是具备输出能力的,
    使用 print 作为变量名后, print 就只是一个变量, 不具备了输出能力.
    
    • 1
    • 2
    print = 1
    print('Hello')
    
    
    • 1
    • 2
    • 3

    2022-11-19_01583

    对象加括号就是调用的意思, 内置函数或方法是可以叫括号调用, 调用的意思后续会说.
    int 对象不可以加括号调用, 否则会抛出报错:
     TypeError: 'int' object is not callable
     类型错误 : 'int' 对象不可调用
    
    • 1
    • 2
    • 3
    • 4

    2022-11-19_01584

    4.4 命名风格
    * 1. 驼峰体 
    	大驼峰: 所有单词首字母大写.                    例如: AddUser  (Javascript 语言推荐)
    	小驼峰: 第一个字母小写, 其他单词首字母大写.     例如: Adduser
    	
    * 2. 下划线: 单词之间用下划线隔开.                  例如: add_user (Python 推荐)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5. 练习

    1. 什么是对象? 什么是变量? 为何要有变量? 对象与变量的关系?
    2. 赋值语言三大组成部分是? 每部分的作用是什么? 
    3. 标识符的命名原则与风格.
    4. 对象三个特征是什么? 
    
    • 1
    • 2
    • 3
    • 4

    文章的段落全是代码块包裹的, 留言0是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言1是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言2是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言3是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言4是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言5是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言6是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言7是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言8是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言9是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言10是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言11是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言12是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言13是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言14是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言15是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言16是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言17是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言18是为了避免文章提示质量低.
    文章的段落全是代码块包裹的, 留言19是为了避免文章提示质量低.


  • 相关阅读:
    关于conda、虚拟环境、镜像通道、pip、pycharm解释器配置的一些总结
    K8s的网络——Underlay和Overlay网络
    提质增效,降本增益,企业如何构建数据驱动的高效组织?
    [附源码]SSM计算机毕业设计重庆工程学院教师宿舍管理系统论文JAVA
    商城数据库设计说明书
    LeetCode112.路径总和(C++描述,递归解法)
    [论文阅读] Curriculum Semi-supervised Segmentation
    protel9s【硬件课程设计】
    Linux安装maven
    Gin+getway+Fabric2.4.4演示(二)初始化账本和前端写入数据到账本
  • 原文地址:https://blog.csdn.net/qq_46137324/article/details/127579664