标识符、变量与赋值语句1

2023-11-18

2.2标识符、变量与赋值语句

2.2.1标识符
标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。
Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:
1.标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
2.标识符不能和 Python 中的保留字相同。有关保留字,后续章节会详细介绍。
3.Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
例如,下面所列举的标识符是合法的:
UserID
name
mode12
user_age
以下命名的标识符不合法:
4word #不能以数字开头
try #try是保留字,不能作为标识符
$money #不能包含特殊字符
4.在 Python 中,标识符中的字母是严格区分大小写的,也就是说,两个同样的单词,如果大小格式不一样,多代表的意义也是完全不同的。比如说,下面这 3 个变量之间,就是完全独立、毫无关系的,它们彼此之间是相互独立的个体。
number = 0
Number = 0
NUMBER = 0
5.Python 语言中,以下划线开头的标识符有特殊含义,例如:

  • 以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from…import* 的方式导入;
  • 以双下划线开头的标识符(如__add)表示类的私有成员;
  • 以双下划线作为开头和结尾的标识符(如 init),是专用标识符。
    因此,除非特定场景需要,应避免使用以下划线开头的标识符。

另外需要注意的是,Python 允许使用汉字作为标识符,例如:

python中文网 = “http://c.biancheng.net”

但我们应尽量避免使用汉字作为标识符,这会避免遇到很多奇葩的错误。

标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:

  • 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register等。
  • 当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book。
    模块内部的类名,可以采用 “下划线+首字母大写” 的形式,如 _Book;
  • 函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割; 常量命名应全部使用大写字母,单词之间可以用下划线分割;

程序照样可以运行,但遵循以上规范的好处是,可以更加直观地了解代码所代表的含义,以 Book 类为例,我们可以很容易就猜到此类与书有关,虽然将类名改为 a(或其它)不会影响程序运行,但通常不这么做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

标识符、变量与赋值语句1 的相关文章

  • Python Pandas 列数据筛选方法汇总

    Pandas 列数据筛选方法汇总 数据准备 一 筛选得到指定的列 1 1 根据 label 选择特定的几列 1 2 选择单列的两种方式 1 3 通过正则表达式选择列 二 同时对 行 和 列 进行筛选 2 1 通过切片 df loc 2 2
  • day20 网络编程(上)

    day20 网络编程 上 课程目标 掌握网络相关的基础知识并可以基于Python开发程序 基于网络进行数据传输 课程概要 网络必备基础 网络编程 Python代码 B S和C S架构 1 必备基础 你必须了解的网络相关设备和基础概念 1 1
  • Python openCV qt.qpa.plugin: could not find the qt platform plugin "cocoa" in "" 在Mac上的解决方案详解

    这是一个不断踩坑的过程 首先 我开始的诉求是希望可以利用 openCV 实时显示电脑摄像头获取的内容 开始用了 cv2 imshow 结果不行 报错 qt qpa plugin Could not find the Qt platform
  • 多任务

    多任务 1 多任务的概念 多任务的最大好处是充分利用CPU资源 提高程序的执行效率 多任务是指在同一时间内执行多个任务 例如 现在电脑安装的操作系统都是多任务操作系统 可以同时运行着多个软件 多任务的执行方式 并发 并行 是多个任务真正意义
  • Python获取当前时间(time模块)

    Python获取当前时间 time模块 1 time time 返回当前时间戳 值为按秒计算的浮点数 表示从1970年1月1日0点0分开始 到当前时间 一共经历了多少秒 import time time time 1566028075 37
  • python脚本启动参数设置与解析

    格式设置 在命令行下启动某个程序时 总会遇到要求输入参数的情况 参数的格式一般 都是一下三总格式之一 python script py hello world hello world 1 python script py h hello w
  • Python装饰器解析(2)——retrying库使用与源码分析

    retrying简介 retrying功能是为一些任务添加重试机制 只需要指定不同的参数就能便捷实现重试机制逻辑代码 retrying特点 1 通用装饰器API 2 指定停止条件 即按尝试次数限制 3 指定等待条件 即 尝试之间的指数退避休
  • -day18面向对象进阶

    day18 面向对象进阶 课程目标 掌握面向对象进阶相关知识点 能更加自如的使用面向对象来进行编程 今日概要 成员 变量 实例变量 类变量 方法 绑定方法 类方法 静态方法 属性 成员修饰符 公有 私有 对象嵌套 特殊成员 对比 问题 洗衣
  • moviepy基础_1:使用moviepy提取视频的音频及合成

    任务 提取 a mp4 的音频部分 然后把提取到的音频添加到 b mp4 里 程序实现 from moviepy editor import 读取2个视频文件 videoclip 1 VideoFileClip a mp4 videocli
  • Python 使用 shuffle() 乱序排列/打乱序列/打乱列表

    在 Python 中 列表和元组中的元素是有顺序的 但是由于元组不可变 所以一般我们涉及到打乱操作 都是针对的列表 在深度学习中 由于原始训练数据可能存在顺序性 当我们分批成 mini batch 进行学习的时候 后面的数据会对系数影响更大
  • 小甲鱼零基础入门学习python笔记

    小甲鱼老师零基础入门学习Python全套资料百度云 包括小甲鱼零基础入门学习Python全套视频 全套源码 全套PPT课件 全套课后题及Python常用工具包链接 电子书籍等 请往我的资源 https download csdn net d
  • pandas逐行/列 遍历Dataframe的三种方式

    目录 一 pandas DataFrame iterrows 二 pandas DataFrame itertuples 三 pandas DataFrame items pandas 逐行 逐列 遍历数据有以下三种方法 一 pandas
  • day02-08 python基础语法

    模块一 python基础语法 day2 快速上手 今日概要 课程目标 学习Python最基础的语法知识 可以用代码快速实现一些简单的功能 课程概要 初识编码 密码本 编程初体验 输出 初识数据类型 变量 注释 输入 条件语句 1 编码 密码
  • 浅识:元组、字典和集合

    目录 一 轻量性列表 元组 一 了解 元组 二 简单的元组操作 三 可哈希对象 二 映射类型 字典 一 了解 字典 二 字典的操作 三 无序可变序列 集合 一 了解集合 二 集合操作与运算 一 轻量性列表 元组 一 了解 元组 列表的功能十
  • Python Pandas 处理空数据/缺失数据 dropna fillna,增加/更新列 assign,分层 qcut,向量函数

    Pandas 处理空数据 缺失数据 增加 更新列 分层 向量函数 数据准备 一 处理缺失数据 1 1 去除有缺失数据的行 dropna 1 2 替换缺失数据 fillna 二 增加 更新列 2 1 指定生成列的方式 2 2 复制现有的列生成
  • day24第三阶段总结

    day24 三阶段总结 课程目标 对第三模块 阶段的知识点进行总结和考试 更好的掌握此模块的相关知识 课程概要 知识补充 阶段总结 思维导图 考试题 1 知识点补充 1 1 并发编程 网络编程 从知识点的角度来看 本身两者其实没有什么关系
  • python 人民币数字转汉字大写金额

    写了那么久的博客 始于Python爬虫 目前专于Java学习 终于有了属于自己的小窝 欢迎各位访问我的个人网站 未来我们一起交流进步 背景 银行在打印票据的时候 常常需要将阿拉伯数字表示的人民币金额转换为大写表示 现在请你来完成这样一个程序
  • -day15--内置模块与开发规范

    day15 内置模块和开发规范 目标 掌握常见的内置模块的使用及了解软件开发的规范 今日概要 内置模块 json time datetime re 开发规范 主文件 配置文件 数据 附件 业务代码 1 内置模块 1 1 json json模
  • -day17 面向对象基础

    第三模块 面向对象 网络 并发编程 此模块包含如下三大部分知识 面向对象 Python中支持两种编程方式来写代码 分别是 函数式编程 面向对象式编程 函数式 定义函数 在函数中实现功能 def func print 一个功能 执行函数 fu
  • -day14--模块与内置模块

    day14 模块 课程目标 掌握Python中常用模块的使用方法 今日概要 自定义模块 包 第三方模块 内置模块 1 2 1 自定义模块 1 1 模块和包 import hashlib def encrypt data 数据加密 hash

随机推荐

  • java项目:基于springboot的商城系统(springBoot+mybatis+layui+jquery)1003

    项目描述 爱购商城 分为前端和后端两部分 主要功能包括 用户管理 轮播图管理 商品分类管理 商品品牌管理 商品管理 等功能 运行环境 jdk8 mysql IntelliJ IDEA maven 项目技术 springBoot mybati
  • 【C++11】 线程库的使用

    文章目录 1 线程库的基本使用 1 1 thread 1 2 this thread 1 3 线程函数参数 2 mutex 2 1 mutex的基本使用 2 2 mutex系列锁 2 3 lock guard与unique lock 3 原
  • 字符“&”在XML文件中需要被转义

    今天弄Mybatis的配置文件时 因为这样一条语句
  • Go 语言笔试面试题(并发编程)

    Q1 无缓冲的 channel 和 有缓冲的 channel 的区别 答案 对于无缓冲的 channel 发送方将阻塞该信道 直到接收方从该信道接收到数据为止 而接收方也将阻塞该信道 直到发送方将数据发送到该信道中为止 对于有缓存的 cha
  • 【Blender2.82a】学习记录

    Blender2 82a 学习记录 1 基本操作 1 1 界面操作 1 2 物体操作 1 3 建模基础 2021 12 13 最近的项目又要用到blender了 已经一年半没用过了 现在用的版本为2 93 6 尽管这篇记录的版本比较老了 但
  • 微信公众号开发本地调试方法

    前言 这几天一直想搞个公众号玩一玩 然后去阿里云买了个云服务器ECS 学生9 9 月 因为一开始接触云服务器 所以选了个window系统 然后在本地创建了一个简单的web项目 jyc 用来认证token 在云服务器里面搭了JDK和tomca
  • CMakeLists.txt指定GCC和g++版本号

    Centos默认的g 版本只有4 8 5一般需要升级g 版本 比如升级9 3 0 升级成功后再使用c 14会报unrecognized command line option std c 14 错误 由于有多个gcc版本 cmake使用的是
  • 向前走

    行脚僧云游山中 目力已经瞥见峰上那风化嶙峋的岩石 许是明日便能行至山顶 脚下不是山脉的主峰 但也是颇具险势 并非泛泛 篝火照耀面庞 在山洞的壁上投出巨大的身影 遁入空门近十载 离寺云游也两三个春秋了 原有些厌世 方才脱发出家 住持常言他有些
  • 「解码AGI 对话大模型」AGI创业者不能错过的五节课!

    由百度飞桨 文心大模型 BV百度风投联合主办 张江集团战略合作的AGI Foundathon 大模型创业松活动于9月11日全面上线 为了进一步提升开发者的创新能力和创业实力 主办方精心策划了全面的线上AGI创业营 本次创业营集创业辅导 技术
  • vue3-styled-components inject导致死循环

    npm vue3 styled components npm 低版本浏览器报错 chrome 49 Uncaught RangeError Maximum call stack size exceeded Vue warn Avoid ap
  • .net 和 java 技术对应关系

    net 和 java 技术对应关系 java 生态的优势早已人尽皆知 asp net core 的生态也呈欣欣向荣之势 作为高级技术从业人 你不应该落下任何一门技术 如果你正在将你的 java 知识体系同步到 net 或者正在将你的 net
  • T-Kernel Data types

    来自 uT Kernel 2 0 Specification 3 1 1 General Data Types typedef signed char B signed 8 bit integer typedef signed short
  • 项目-STL空间配置器

    这篇博客主要讲一下SGI STL中的空间配置器的工作流程 一 项目背景 小块内存带来的内存碎片问题 外碎片问题 小块内存频繁申请释放带来的性能问题 二 空间配置器的思想 对于我们来说 对new和delete很熟悉 这两个函数可以分别完成内存
  • 运放中接电阻的作用

    一 基本概念 运放的基本组成 运算放大器的内部电路结构如下所示 一般由输入段 增益段 输出段等3段电路构成 输入段由差分放大段构成 用于放大两个引脚间的电压差 另外 同相信号成分 引脚间无电位差 输入相等电压的状态 不放大 起抵消作用 若仅
  • 数学期望、信息量、信息熵、相对熵、交叉熵

    1 数学期望 数学期望就是总体的均值 或者各项的加权平均 先看离散的情况 假设X为离散型随机变量 x1 x2 x3 xk为随机变量的所有可能取值 p1 p2 p3 pk为随机变量相应取值发生的概率 其中p1 p2 p3 pk 1 那么随机变
  • 安装gin失败或卡住,亲测有效!

    安装gin失败或卡住 亲测有效 本人基于最近学习完了go所有语法 对go框架进一步学习与实战 但第一步的安装就遇到了坑 也是坑了很久 网上很多的方法 但是都乱七八糟 最主要一点毛线用都没有 柳暗花明又一村 功夫不负有心人 还是让我找到了解决
  • 电阻噪声的基础知识和一个有趣的小测试

    作者 TI 专家 Bruce Trump 翻译 TI信号链工程师 Tom Wang 王中南 放大电路的噪声性能受到输入电阻和反馈电阻Johnson噪声 热噪声 的影响 大多数人似乎都知道电阻会带来噪声 但对于电阻产生噪声的细节却是一头雾水
  • PHP对二维数组里面的多字段进行排序

    PHP对二维数组里面的多字段进行排序
  • 500 G JAVA视频网盘分享(JEECG开源社区)

    500 G JAVA视频网盘分享 JEECG开源社区 涵盖从java入门到深入架构 Linux 云计算 分布式 大数据Hadoop ios Android 互联网技术应有尽有 转载 http blog csdn net zhangdaisc
  • 标识符、变量与赋值语句1

    2 2标识符 变量与赋值语句 2 2 1标识符 标识符就是一个名字 就好像我们每个人都有属于自己的名字 它的主要作用就是作为变量 函数 类 模块以及其他对象的名称 Python 中标识符的命名不是随意的 而是要遵守一定的命令规则 比如说 1