当前位置: 首页 > wzjs >正文

企业微信网站开发公司岳阳网站定制开发设计

企业微信网站开发公司,岳阳网站定制开发设计,石家庄学做网站建设培训班,主机做网站服务器吗Python语言基础知识详解:标识符与变量 一、标识符(Identifiers) 定义 标识符是用于命名变量、函数、类、模块或其他对象的名称。它是代码中对实体的唯一标识。 1. 标识符的命名规则 Python的标识符需遵循以下规则: 允许的字符 由…

Python语言基础知识详解:标识符与变量


一、标识符(Identifiers)

定义
标识符是用于命名变量、函数、类、模块或其他对象的名称。它是代码中对实体的唯一标识。


1. 标识符的命名规则

Python的标识符需遵循以下规则:

  1. 允许的字符

    • 由字母(A-Z, a-z)、数字(0-9)和下划线(_)组成。
    • 必须以字母下划线开头,不能以数字开头。
    • 区分大小写nameNameNAME 是三个不同的标识符。
    valid_names = ["age", "_count", "user1", "MAX_VALUE"]  # 合法
    invalid_names = ["2nd_var", "my-var", "class"]         # 非法(数字开头、特殊字符、保留字)
    
  2. 保留关键字(Keywords)
    Python有35个保留关键字,不可作为标识符。例如:

    # 查看所有关键字
    import keyword
    print(keyword.kwlist)  # ['False', 'None', 'True', 'and', 'as', 'assert', ...]
    
  3. 命名约定

    • PEP8规范:Python官方推荐的代码风格指南。
      • 变量名:小写字母 + 下划线分隔(snake_case),如 user_name
      • 常量名:全大写 + 下划线分隔,如 MAX_SIZE
      • 类名:首字母大写的驼峰式(CamelCase),如 ClassName
      • 函数名:同变量名,如 calculate_total()
    • 避免混淆
      • 不要使用小写l、大写O等易混淆字符。
      • 避免单下划线开头(_var)或双下划线开头(__var)的特殊含义名称(除非明确用途)。

2. 标识符的作用域与生命周期
  • 作用域:标识符的有效范围(局部、全局、闭包)。
  • 生命周期:标识符从创建到销毁的时间段,由作用域决定。

二、变量(Variables)

定义
变量是程序运行时存储在内存中的数据的引用(即标识符指向具体对象)。


1. 变量的声明与赋值

Python是动态类型语言,变量无需显式声明类型,直接赋值即可创建。

  1. 单变量赋值

    a = 10          # 整型变量
    name = "Alice"  # 字符串变量
    is_valid = True # 布尔型变量
    
  2. 多变量赋值

    x, y, z = 1, 2, 3          # 同时赋值多个变量
    a = b = c = 0              # 链式赋值(所有变量指向同一对象)
    x, y = y, x                # 交换变量值(无需临时变量)
    
  3. 变量类型动态变化

    var = 10       # 初始为整型
    var = "Hello"  # 重新赋值为字符串(合法)
    

2. 变量的本质:对象引用

Python变量本质是对象的引用(指针),而非存储数据本身。

  • 不可变对象:赋值会创建新对象(如int, str, tuple)。
  • 可变对象:赋值共享同一对象(如list, dict, set)。
# 不可变对象示例
a = 10
b = a  # b和a指向同一个整数对象
a = 20 # 创建新对象20,a指向新对象,b仍为10# 可变对象示例
list1 = [1, 2]
list2 = list1   # list2和list1指向同一列表
list1.append(3) # 修改原列表,list2同步变化
print(list2)    # 输出 [1, 2, 3]

3. 变量的作用域

Python作用域分为四层(由内到外):

  1. 局部作用域(Local):函数内部定义的变量。
  2. 闭包作用域(Enclosing):嵌套函数的外层作用域。
  3. 全局作用域(Global):模块级别定义的变量。
  4. 内建作用域(Built-in):Python内置的标识符(如print, len)。
global_var = "Global"  # 全局变量def outer():enclosing_var = "Enclosing"  # 闭包作用域变量def inner():local_var = "Local"      # 局部变量print(global_var)        # 访问全局变量print(enclosing_var)     # 访问闭包变量inner()outer()
  • global 关键字:在函数内部修改全局变量。
  • nonlocal 关键字:在嵌套函数中修改闭包变量。
count = 0  # 全局变量def increment():global countcount += 1  # 修改全局变量def outer():x = 10def inner():nonlocal x  # 声明x为闭包变量x += 5inner()print(x)  # 输出15

4. 变量的内存管理
  • 引用计数:Python通过引用计数自动回收内存。当引用计数为0时,对象被销毁。
  • 垃圾回收(GC):处理循环引用等复杂情况。
import sys
a = []
print(sys.getrefcount(a))  # 输出引用计数(通常比实际多1)

三、常见问题与最佳实践
  1. 变量命名常见错误

    • 使用保留字(如 class = 10)。
    • 使用无意义的名称(如 a, x1)。
    • 大小写混淆(如 UserName vs userName)。
  2. 变量作用域陷阱

    • 未声明 global 直接修改全局变量(导致创建局部变量)。
    • 闭包中未正确使用 nonlocal
  3. 最佳实践

    • 明确性:变量名应清晰描述其用途(如 student_list 优于 s)。
    • 避免全局变量:优先使用局部变量或类属性。
    • 类型提示(Type Hints):Python 3.5+支持类型注解,增强代码可读性。
      def greet(name: str) -> str:return f"Hello, {name}"
      

四、总结
核心概念关键点
标识符规则字母/下划线开头,区分大小写,避开保留字,遵循PEP8命名规范。
变量的本质对象引用,动态类型,支持多变量赋值。
作用域管理局部 > 闭包 > 全局 > 内建,使用 globalnonlocal 控制作用域。
内存管理引用计数 + 垃圾回收机制,自动管理内存。
最佳实践明确命名、避免全局污染、合理使用类型提示。

掌握标识符与变量的细节,是编写高效、可维护Python代码的基础。通过合理的命名和变量管理,能显著提升代码的可读性和协作效率。


文章转载自:

http://lCkxtzpL.ntgjm.cn
http://XAPd2P58.ntgjm.cn
http://lRVpy3PQ.ntgjm.cn
http://xPSZyO7V.ntgjm.cn
http://lCZuPYoe.ntgjm.cn
http://QlBjg9mW.ntgjm.cn
http://dnGfTeEZ.ntgjm.cn
http://Mn6SywOl.ntgjm.cn
http://nsjNH44v.ntgjm.cn
http://frAZFDIq.ntgjm.cn
http://V5K0UQvR.ntgjm.cn
http://PBtHcCnk.ntgjm.cn
http://CzWZn7EP.ntgjm.cn
http://OfACFcqS.ntgjm.cn
http://dFK8I17S.ntgjm.cn
http://A5XTnplj.ntgjm.cn
http://OlbKw4uX.ntgjm.cn
http://RnbgvKby.ntgjm.cn
http://rZfvSI1G.ntgjm.cn
http://IjvCLQAE.ntgjm.cn
http://Gu20aKQI.ntgjm.cn
http://Qk6KIkJb.ntgjm.cn
http://WIyzHdx7.ntgjm.cn
http://YM5etdeg.ntgjm.cn
http://T0ZQsYWx.ntgjm.cn
http://u9QQugw3.ntgjm.cn
http://7IgDzZ49.ntgjm.cn
http://3RPkUZWx.ntgjm.cn
http://lKhLxeUV.ntgjm.cn
http://G8xtixWi.ntgjm.cn
http://www.dtcms.com/wzjs/658376.html

相关文章:

  • 知乎 做照片好的网站婚恋网站 模板
  • 东莞最新网站建设软件中国建设银行官方网站纪念币预约
  • 用jsp做网站的感想北京海淀区区号
  • 晓风彩票网站建设软件怎么用电脑自带软件做网站页面
  • 会展行业门户网站建设营销网站建设选择
  • 哪个网站做推广做的最好wordpress登录密码
  • 芜湖市住房和城乡建设厅网站建设工程教育网怎么样
  • 广州专业做外贸网站抖音权重查询工具
  • 丽江旅游网站建设会做网站开发 但是不会二次开发
  • 对网站建设这门课程的想法手机网站申请
  • 亚马逊deal网站怎么做河北省建设部网站
  • 深圳中高端网站建设做网站时如何将前端连接到后台
  • 网站开发准备网站seo快速排名软件
  • 企业做淘宝客网站有哪些ai素材免费下载网站
  • 网站建设 合肥wordpress分类发布文章
  • 宁波网站建设ysdsh如何做网络免费推广方案
  • 建网站义乌深圳优化公司
  • 网站建设丶金手指下拉13怎么用服务器lp做网站
  • 佛山网站建设公司-印象互动北京网站制作 建设推广
  • 梅州做网站设计公司怎么对网站的数据库做管理
  • 手机访问网站建设中360搜索的网站收录入口
  • 手机网站字体自适应做网站 二维码登录
  • wordpress前端文章编辑器南宁企业官网seo
  • 东营专业网站建设公司电话昆明网上房地产官网
  • 网站程序开发要点企业qq官网
  • 万户信息 做网站怎么样网站开发经营范围
  • 做网站需要 的文档网络运营公司排名
  • 企业网站登录入口官网开发公司赠送阁楼视同销售
  • 做网站推广员图片处理问题加工平台苏州纳米所
  • 网站模块在线制作万网域名注册网站