Skip to content

Latest commit

 

History

History
352 lines (233 loc) · 6.29 KB

File metadata and controls

352 lines (233 loc) · 6.29 KB
Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0051
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在: 
	- 个人网站: `https://oeasy.org` 
	- 蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
	- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
	- Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

什么样的变量名能用_标识符_identifier

回忆上次内容

  • 配套视频

  • 上次 我们 研究了

    • 变量的
    • 就有
  • 原本的

    • 是 在程序退出时
      • 自动执行的
    • 也 可以 在运行过程中
      • 手动给变量 赐死
      • 突然死亡
      • 就是 del
  • del 了之后

    • 在 当前作用域(scope)内
    • 就 找不到 这个变量 了
    • 也就是 说a 消失了😱

图片描述

  • 当然 我们还可以
    • 让a重生
    • 感觉 自己成
    • 变量造物主 了

图片描述

  • 变量名 该怎么起呢?🤔

标识符命名规则

  • 赋值 是
    • 将 值 赋给 变量名
    • assign value to variable

图片描述

  • 变量名

    • 比如 number 、 word
    • 都是 字符串
  • 这个字符串

    • 也叫标识符
    • identifier

identifier

  • 变量名
    • 就像 变量的 身份证🆔
    • identity card

图片描述

  • 之前 说的id函数
    • 就是身份证
    • 有什么区别吗?

id

a = 0
print("id:", id(a))
  • id 查看的是
    • 变量 唯一的 内存地址

图片描述

  • 保证同时存在的对象
    • 有唯一的地址

图片描述

  • 标识符(identifier)
    • 唯一在哪儿呢?

identifier呢

  • 标识符(identifier)的 唯一
    • 指的是 变量名字是唯一的
a = 0
a = 1
  • 重新赋值

    • 不会 声明新变量
    • 只是 再次赋值
  • 什么样的 标识符

    • 合法的呢?

变量名

a1 = 456
  • a1 可以 作为变量名
1a = 789
  • 1a 能 作变量名

图片描述

  • 为什么呢?

问问ai

图片描述

  • a1是

    • 字母开头
    • 后面 接数字
  • 1a 属于是

    • 数字开头的
    • 不行
  • 深入游乐场

    • 看看python怎么说

查看文档

图片描述

  • 进入帮助模式

找到主题

图片描述

  • 找到主题
    • IDENTIFIERS
    • 标识符

标识符

  • python中
    • 标识符的 基本规则
  • 第一个字符 只能是 字母和下划线
    • 后面跟 字母和下划线 外加 数字

图片描述

  • 数字开头 为什么
    • 不能当 变量名?

再问一步

图片描述

  • 说这是惯例
    • 从哪儿来的惯例呢?

从 c语言 来

  • c语言 对于 标识符的
    • 命名要求是 这样的
  • 第一个字符 应该是 字母和下划线
    • The first letter of an identifier should be either a letter or an underscore
  • 合法的标识符 可以包括 字母和下划线,外加 数字
    • A valid identifier can have letters(both uppercase and lowercase letters),digits and underscores.

图片描述

  • python 和 c 一模一样
    • 为什么c 要有 这么个惯例 呢?

问ai

图片描述

  • 数字开头 一般都被认作
    • 数字常量

数字常量

  • 这惯例 是为了 区分
    • 标识符
    • 数字常量

图片描述

  • 如何判断字符串
    • 合法的标识符呢?

identifier

  • q退出帮助细则

图片描述

  • 按回车 退出帮助模式
    • 回到 游乐场 >>>
help(str.isidentifier)
  • 字符串类(str)
    • 有isidentifier()函数
    • 判断字符串 是否为 合法标识符

图片描述

答案

  • 比如
    • "abc"
    • 是不是合法标识符呢?
    • isidentifier()?
"abc".isidentifier()
  • True
    • abc是合法的标识符

图片描述

  • 这是 字母开头
    • 符合要求
  • 要是 数字开头 的呢?

数字开头

"98k".isidentifier()
  • 而字符串 "98k"
    • 就不符合要求了

图片描述

  • 如果就想 用"98k"
    • 当 标识符 呢?

下划线

  • 硬上是不行的!😭

图片描述

  • 有什么解决的方法吗?

解决方法

  • 如果 要 数字开头的话
    • 前面 不是可以 加下划线(underscore) 嘛!
    • 看起来 就像 98k

图片描述

  • _98k报了NameError!!!😄
    • 有戏!!!
  • 符合 要求 吗?

命名规则

"_98k".isidentifier()
  • 符合规则!!😄

图片描述

  • 真能赋值吗?!🤔

赋值

_98k = "ak47"
  • 真能赋值!!😄

图片描述

  • 不用硬上
    • 也能赋值

练习

  • 以下哪些变量名是合法的?

    • oeasy
    • o2z
    • o?z
    • o,z
    • _orz
    • 0rz
    • __0rz
  • 使用isidentifier函数

    • 验证 一下 你的判断

思路

  • 猜对了吗?!🤔

图片描述

  • 标识符 只能 由 字母、下划线、数字 组成
    • 开头不能是 数字

总结

  • 这次我们了解了 标识符 要求
    • 字符 为 字母和下划线
    • 后面字符 为 字母和下划线 外加 数字

图片描述

  • 使用isidentifier函数 可以验证
    • 标识符 是否合法
    • 规则 可以追溯到 c语言
  • c语言 为什么
    • 会影响到 python 呢?🤔
  • 我们下次再说!👋
  • 配套视频

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。