06- Python的标识符

news2024/11/14 19:21:26

在这里插入图片描述

Python 标识符的知识点

简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。
Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:

Python 标识符

标识符是用来标识变量、函数、类等的名称。它们由字母、数字和下划线组成,但不能以数字开头。

规则
  • 不能是 Python 关键字。
  • 不应包含空格。
  • 可以包含字母 (A-Z, a-z)、数字 (0-9) 和下划线 (_)。
  • 必须以字母或下划线开头。
  • 不应包含除下划线以外的特殊字符。
知识点解释示例
标识符计算机语言中允许作为“名字”的有效字符串组合。variable_name
关键词保留字,不允许另用,通常用于编程控制结构。import keyword
内建标识符内置标识符,包含程序开始前自动导入的模块成员。__builtins__ 模块内的 print 函数
特殊变量和方法以单或双下划线开头或结尾的标识符,通常用于特殊用途。__init__(类构造方法),_variable(受保护变量)
合法标识符标识符的第一个字符必须是字母或下划线,其余字符可以是字母、数字或下划线,并且大小写敏感。VariableNamevariablename 是不同的标识符。
专用下划线标识符包含特殊用途的标识符,通常由系统或 Python 解释器定义。__name__ 用于检查模块是直接运行还是被导入。
私有变量类中以双下划线开头的变量,仅供类内部使用,不应被直接访问。__private_variable
命名规范在定义变量和函数时,遵循合适的命名规范以提高代码可读性。使用 snake_case 来命名变量,如 user_name

扩展解释与示例:

  • 关键词:在 Python 中,关键词是有特殊意义的单词,不能用作变量名。例如,ifelsefor 都是 Python 的保留关键词。要查看所有关键词,可以使用 import keyword 后执行 keyword.kwlist

  • 内建标识符:内置标识符是 Python 在启动时自动导入的标识符,这些标识符通常是常用的函数和异常处理机制,例如 printlenException

  • 特殊变量和方法:例如,__init__ 是类的初始化方法,在实例化对象时自动调用;_var 作为类的“受保护”变量,只在类及其子类中使用。

  • 合法标识符:Python 的标识符必须符合特定规则,如变量名可以是 user_1 但不能是 1_user,并且 Python 是区分大小写的语言,Datadata 是两个不同的标识符。

  • 私有变量:在类中定义的私有变量(如 __var)不能被类外部直接访问,需要通过类提供的接口访问,以保护变量的安全性和封装性。

# 1. 关键词示例
import keyword

# 打印所有 Python 关键词
print("Python 关键词列表:", keyword.kwlist)

# 判断 'for' 是否是关键词
print("是否是关键词:", keyword.iskeyword('for'))

# 2. 合法标识符示例
# 正确的标识符
user_name = "Alice"    # 使用下划线分隔单词
age = 30               # 纯字母和数字组成
total_score = 95.5     # 下划线和数字组合

# 非法标识符(代码中将引发 SyntaxError)
# 1_user = 5           # 标识符不能以数字开头
# my-variable = 10     # 标识符中不能包含连字符

# 3. 内建标识符示例
# 使用 Python 的内建函数 len() 计算列表长度
sample_list = [1, 2, 3, 4]
print("列表长度:", len(sample_list))

# 4. 特殊变量和方法示例
class MyClass:
    def __init__(self, name):  # __init__ 是一个特殊方法,用于初始化类实例
        self._protected_var = "受保护变量"
        self.__private_var = "私有变量"
        self.name = name

    def display(self):
        print("名称:", self.name)
        print("受保护变量:", self._protected_var)
        # 尝试访问私有变量
        print("私有变量:", self.__private_var)

# 创建类的实例
obj = MyClass("Example")

# 访问类的公开方法
obj.display()

# 访问受保护变量(可以访问,但建议仅在类内部使用)
print("外部访问受保护变量:", obj._protected_var)

# 尝试访问私有变量(将引发错误)
# print(obj.__private_var)  # AttributeError: 'MyClass' object has no attribute '__private_var'

# 5. 专用下划线标识符示例
print("模块名称:", __name__)  # __name__ 是一个特殊变量,指示模块的名称

if __name__ == "__main__":
    print("当前模块是独立运行的")

# 6. Python 中的命名规范
def calculate_total_price(item_price, tax_rate):
    """根据商品价格和税率计算总价"""
    return item_price * (1 + tax_rate)

# 示例调用
total = calculate_total_price(100, 0.05)
print("总价:", total)

Python 关键字

Python 关键字是预定义和保留的词,具有特殊的含义和用途。关键字不能用作标识符(如变量名、函数名等)。所有 Python 关键字都是小写字母,除了 TrueFalse

Python 3.11 关键字列表(共 35 个)
  • False: 代表布尔类型的假值。
  • None: 代表空值或没有值。
  • True: 代表布尔类型的真值。
  • and: 逻辑与运算符。
  • as: 用于导入模块或类时重命名。
  • assert: 用于调试目的,当条件为假时抛出异常。
  • async: 用于定义异步函数。
  • await: 用于等待异步操作的完成。
  • break: 用于提前退出循环。
  • class: 用于定义类。
  • continue: 用于跳过循环中的当前迭代。
  • def: 用于定义函数。
  • del: 用于删除对象。
  • elif: 用于条件语句中,作为 ifelse 的中间选项。
  • else: 用于条件语句中,当所有前面的条件都不满足时执行。
  • except: 用于捕获异常。
  • finally: 用于确保某些代码无论是否发生异常都会被执行。
  • for: 用于创建循环。
  • from: 用于导入模块中的特定对象。
  • global: 用于声明变量是全局作用域的。
  • if: 用于创建条件语句。
  • import: 用于导入模块。
  • in: 用于检查成员资格。
  • is: 用于比较对象的身份。
  • lambda: 用于创建匿名函数。
  • nonlocal: 用于声明变量是非局部作用域的。
  • not: 逻辑非运算符。
  • or: 逻辑或运算符。
  • pass: 用于创建空语句。
  • raise: 用于引发异常。
  • return: 用于从函数返回值。
  • try: 用于尝试执行代码块。
  • while: 用于创建循环。
  • with: 用于使用上下文管理器。
  • yield: 用于创建生成器。

示例

逻辑运算符
print(True and True)  # 输出 True
print(True or False)  # 输出 True
print(not False)      # 输出 True
条件语句
if 10 > 5:
    print("Ten is greater than five.")
elif 10 == 5:
    print("Ten equals five.")
else:
    print("Five is greater than ten.")
循环语句
for i in range(1, 11):
    if i < 5:
        continue
    else:
        break
    print(i)
异常处理
try:
    c = 3 / 0
    print("Inside try block")
except ZeroDivisionError:
    print("Inside Exception block")
finally:
    print("Inside finally block")
模块导入
import math
print("Factorial of 5 is :", math.factorial(5))
类定义
class MyClass:
    pass
异步函数
import asyncio

async def factorial(n):
    if n == 0:
        return 1
    return n * await factorial(n - 1)

def main():
    result = asyncio.run(factorial(5))
    print(result)

if __name__ == "__main__":
    main()

python教程-微信学习交流群

学习交流群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt 调用MFC dll,动态库中有界面

一、创建MFC 动态库工程 下一步 创建 点击确定 二、创建接口 这个是系统创建的&#xff0c;改成自己的接口。 头文件&#xff1a; #ifndef __WEB_ENGINE__ #define __WEB_ENGINE__#ifdef __cplusplus extern "C" { #endif__declspec(dllexport) bool __stdcall Loa…

Datawhale AI 夏令营-CV竞赛-Task2

# Datawhale AI 夏令营 夏令营手册&#xff1a;从零上手CV竞赛 比赛&#xff1a;2024“大运河杯”数据开发应用创新大赛——城市治理赛道 代码运行平台&#xff1a;厚德云 赛题任务 本赛题的任务是开发智能识别系统&#xff0c;用于自动检测和分类城市管理中的违规行为。通…

Vue组件的好处和理解、基本使用、注意事项、组件嵌套、VueComponent理解和原型链

目录 1. 组件的好处和理解2. Vue组件的使用2.1 Vue中使用组件的三大步骤2.2 注意事项 4. 组件的嵌套5. VueComponent的理解6. VueComponent原型链 1. 组件的好处和理解 传统方式编写应用&#xff0c;存在2大问题&#xff1a; 依赖关系混乱&#xff0c;不好维护代码复用率不高…

中资优配:人气牛股10连板!

三大股指今日弱势轰动&#xff0c;均创2月初以来新低&#xff1b;小盘股较为生动&#xff0c;万得微盘股指数涨超1%&#xff1b;两市成交额再度萎缩至5000亿元下方&#xff1b;港股走势疲弱&#xff0c;两大股指均跌超1%。 具体来看&#xff0c;沪指在银行、酿酒等板块的拖累下…

ESP32-IDF http请求崩溃问题解决

文章目录 esp32s3 http请求崩溃问题代码讨论修正后不崩溃的代码 ESP32S3板子, 一运行http请求百度网站的例子, 就会panic死机, 记录下过程. esp32s3 http请求崩溃 一执行http请求的perform就会崩溃, 打印如图 ESP32-IDF 的http请求代码是根据官方demo来改的, 第一步先连接wi…

佰朔资本:大盘股和小盘股的区别?大中小盘股划分标准?

一般来说&#xff0c;大盘股&#xff1a;流通市值在500亿及以上&#xff0c;中盘股&#xff1a;流通市值在100亿~500亿之间&#xff0c;小盘股&#xff1a;流通市值在100亿及以下。 留意&#xff1a;流通市值是可以上市买卖流通的股数与股价乘积&#xff0c;总市值由流通市值与…

【项目源码】终于有人将打字游戏和编程英语结合起来啦!Java初学者的福音

Hello&#xff01;各位彦祖&#xff0c;亦菲们&#xff01;又是美好的一天&#xff01;今天给大家分享一个Java项目源码&#xff1a;Java打字游戏项目源码&#xff01; 看到这里&#xff0c;你可能会说&#xff01; 一个破打字游戏有什么可神气的&#xff01;&#xff01;&…

OpenCV 图像处理中滤波技术介绍

VS2022配置OpenCV环境 关于OpenCV在VS2022上配置的教程可以参考&#xff1a;VS2022 配置OpenCV开发环境详细教程 图像处理中滤波技术 图像滤波是图像处理中的一种重要技术&#xff0c;用于改善图像质量或提取图像中的特定特征。以下是一些常见的图像滤波技术&#xff1a; 均…

LeetCode 热题100-41 二叉树的层序遍历

二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]]示例 2&…

线上预订酒店订房小程序源码系统 多商家入驻 带完整的安装代码包以及搭建部署教程

系统概述 线上预订酒店订房小程序源码系统是一款基于微信小程序开发的酒店预订系统。它充分利用了微信小程序的便捷性和普及性&#xff0c;为用户提供了一个方便、快捷的酒店预订渠道。同时&#xff0c;该系统还支持多商家入驻&#xff0c;允许不同的酒店商家在同一个平台上展…

uniapp自定义头部导航栏布局(普通版)

H5与微信小程序 通过获取系统信息和获取胶囊按钮的信息&#xff0c;得到获取标题栏高度&#xff0c;成而做好自定义头部导航栏 在微信小程序可使用 但在H5就保错&#xff0c;就需要优化 <!-- 全局custom-nav-bar组件 --> <template><view class"customN…

【Docker】Dockerfile实列-Nginx镜像构建

一、镜像构建步骤 实验准备&#xff1a;导入centos7镜像&#xff08;因为现在docker镜像拉取不下了&#xff09; docker load -i centos-7.tar.gz 1、建立构建目录&#xff0c;编写构建文件 [rootdocker-node1 ~]# mdkir /docker [rootdocker-node1 ~]# cd /docker [rootdo…

发现一个程序员最强外设,助你高效开发早日摸鱼!

简介 最近公司的副屏有点问题&#xff0c;经常屏闪&#xff0c;无意中和媳妇儿吐槽了几句。没想到&#xff0c;生日的时候&#xff0c;居然收到了她的礼物&#xff1a; 看到「程序员专用」的时候&#xff0c;我很开心的对媳妇儿表示了感谢&#xff0c;但内心第一反应是&#x…

1DM+ v17.1 修改版 — 多线程下载管理工具(高效稳定)

1DM 是一款适用于安卓设备的下载管理工具&#xff0c;支持多线程下载&#xff0c;可以加快下载速度。具备自动识别下载链接、断点续传、下载任务管理和文件浏览等功能。此修改版由 Balatan 制作&#xff0c;无需 root 或 Lucky Patcher&#xff0c;禁用不必要的权限和功能&…

学习之SQL语句

SQL通用语法 1、SQL语句可以单行或者多行书写&#xff0c;以分号结尾 2、SQL语句可以使用空格或者缩进增强语句的可读性 3、MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写 4、注释&#xff1a; 单行注释&#xff1a;-- 注释内容 或 # 注释内容&#xff08;…

【百度-APP相关安卓开发】

百度-APP相关安卓开发 安卓四大组件activaty生命周期 启动模式一个Activity的生命周期主要有四种状态&#xff1a;Activity周期Activity的启动模式&#xff1a;广播接收器 线程多线程 线程池进程 线程 携程进程与线程比较协程与线程比较 进程间通信方式和区别Mysql和Redis区别T…

【Python】--- 基础语法(上)

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; Python 本篇博客博主将分享一些python的基础语法。 &#x1f3e0; 常量和表达式 我们可以把Python当成一个计算器,进行一些简单的算术运算 print(1 …

九芯电子:派对酒吧音箱灯光语音控制方案的优选

随着科技的发展以及智能AI的兴起&#xff0c;人们对交互体验的需求不断增长&#xff0c;派对酒吧音箱灯光语音控制方案是人机交互信息载体。‌九芯电子的NRK3301芯片成为了派对酒吧音箱灯光语音控制方案的理想选择。‌ NRK3301芯片是一款高性能、低成本的32位语音识别芯片&…

windows上传文件精准包含技巧

目录 环境搭建 原理 绕过 结果 环境搭建 需要在php.ini开启upload_tmp_dir选项 这里需要对C:\Windows\Temp有写入权限 文件上传页面 文件包含页面 原理 利用文件上传产生的缓存文件进行命令执行&#xff0c;从而getshell 绕过 你上传文件的时候会生成临时文件,我们需要…

vue3中使用高德地图天气信息

注册一个key 和安全密钥 index.html中 使用script标签 引入生成的key和秘钥 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><link rel"icon" href"/favicon.ico" /><meta name&q…