[oeasy]python051_什么样的变量名能用_标识符_identifier

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
应用实时监控服务-应用监控,每月50GB免费额度
简介: 本文介绍了Python中变量名的命名规则,强调标识符(identifier)必须以字母或下划线开始,后续可包含字母、下划线及数字。通过`isidentifier()`函数可验证字符串是否为合法标识符。文中还探讨了为何数字不能作为标识符的开头,并提供了相关练习与解答,最后提及这些规则源自C语言的影响。

什么样的变量名能用_标识符_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 呢?🤔
相关文章
|
7月前
|
人工智能 Python
[oeasy]python082_变量部分总结_variable_summary
本文介绍了变量的定义、声明、赋值及删除操作,以及Python中的命名规则和常见数据类型。通过示例讲解了字符串与整型的基本用法、类型转换方法和加法运算的区别。此外,还涉及异常处理(try-except)、模块导入(如math和random)及随机数生成等内容。最后总结了实验要点,包括捕获异常、进制转化、变量类型及其相互转换,并简述了编程中AI辅助的应用策略,强调明确目标、分步实施和逐步巩固的重要性。更多资源可在蓝桥、GitHub和Gitee获取。
260 97
|
7月前
|
人工智能 Python
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
237 62
|
6月前
|
存储 索引 Python
[oeasy]python093_find方法_指数为负数_index_实际效果
本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
404 8
|
7月前
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
198 20
|
8月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
244 29
|
7月前
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
157 17
|
7月前
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
209 12
|
7月前
|
索引 Python
[oeasy]python092_eval_衡量_转化为列表
本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
150 2
|
7月前
|
人工智能 Python
[oeasy]python088_列表_清空列表_clear
本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
146 5
|
7月前
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
164 11

推荐镜像

更多