Python3的变量和常量 - vip共享吧
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们


  • 个人中心
  •  我的主页
  •  我要投稿
  •  会员服务
  •  修改资料
  •  退出登录
导航菜单
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们
Python

Python3的变量和常量

2023/7/20 韩俊  Python教程 98 0

变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型,比如我们上节课刚刚学过的基本数据类型或者我们后面要学的自定义数据类型。

所谓常量就是不能改变的变量,我们现实世界中存在这样的不可改变的东西,比如圆周率 π,万有引力常量 G 等等都是不可改变的量。

本节我们学习变量和常量的定义和语法。

变量

在程序中我们用一个变量名来表示变量,变量名的写法必须是大小写英文,数字和_的组合,且记不能用数字开头。小说明:英文符号 # 表示注释,# 后面的内容程序在执行时会忽略掉,只有我们程序员才能看到。

name = "jack"
NAME = "jack"
_name = "jack"
name2 = "jack"
2name = "jack"  # 错误:数字不能在前面
name! = "jack"  # 错误:不支持其它字符

Python 中内置一些关键字(我们可以使用 keyword 模块提供的函数打印出当前 Python 解释器规定的所有关键字,注意 Python 版本不同,所规定的关键字有所变化),虽然这些关键字符合变量的命名规则,但是 Python 解释器规定不能使用这些关键字作为变量名,否则解释器报语法错误。

import keyword
print(keyword.kwlist)  # 列出当前 Python 解释器的所有关键字

and = 9  # 关键字 and 不可以作为变量名

在 Python 中,英文等号 = 是赋值运算符,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,程序中的等号和数学上的等号不是一个意思, Python 程序中用两个等号来表示数学上的等号。

data = 2
print(data)
data = True
print(data)
data = "Python"
print(data)
print(2 == 2)

我们也可以把一个变量赋值给另一个变量,这个操作实际上是修改变量指向另一个变量所指向的数据,看如下代码。

strone = "Python"
strtwo = strone
strone = "Hello"

print(strone)
print(strtwo)

我们对以上代码进行分析,看看每一句代码在内存中是如何表示的,对于第一句代码 strone = "Python",Python 解释器首先检查字符串 "Python" 中的每个字符在内存中是不是存在,如果不存在就给每个字符分配内存空间,如果存在则不给该字符创建内存,然后 Python 解释器再次在内存中开辟一块内存(比如内存地址为:0x8899aa 的地方)存放字符串 "Python" 中每个字符的地址,然后 Python 解释器再次在内存中开辟一块内存存放 strone 变量(比如内存地址为:0x223388), strone 变量的值就是字符串 "Python"的地址。注意:0x 开头是表示用十六进制表示数值。

Python的变量和常量

对于第二句代码 strtwo = strone,Python 解释器再次在内存中开辟一块内存存放 strtwo 变量(比如内存地址为:0x223399),然后 Python 解释器把 strone 变量内存里面的值(0x8899aa)赋值给 strtwo 的内存,目前执行上面两句代码后的内存模型如下图。

Python的变量和常量

对于第三句代码 strone = "Hello",Python 解释器首先检查字符串 "Hello" 中的每个字符在内存中是不是存在,如果不存在就给每个字符分配内存空间,如果存在则不给该字符创建内存, Python 解释器再次在内存中开辟一块内存(比如内存地址为:0x8899bb 的地方)存放字符串 "Hello" 中每个字符的地址,然后 Python 解释器把字符串 "Hello" 的地址(0x8899bb)赋值给 strone 的内存,最后的结果是 strone 内存的值为 0x8899bb,strtwo 内存的值为 0x8899aa,如下图。

Python的变量和常量

注意:"Hello"字符串中 有两个 l 字符成员,在 Python 解释器第一次给 l 分配内存后,就不会再给第二个 l 分配内存了,所以字符串 "Hello" 中两个 l 成员的内存地址是一样的,大家可以通过 Python 的 id 函数验证一下字符串中两个 l 成员的地址是否一样。

strone = "Hello"
print(id(strone[2]))  # 第一个 l 成员的内存地址
print(id(strone[3]))  # 第二个 l 的内存地址

常量

所谓常量就是不能改变的变量,Python 中定义常量和其它语言中定义常量不同,比如 c++ 语言可以在变量名前加上关键字 const 来定义这个变量是常量,常量在定义的时候必须初始化,在这之后就不能修改该常量的值,否则解释器会报错。 Python 语言没有关键字可以把一个变量定义成一个常量,所以 Python 语言本身并没有常量的语法定义,但我们一般对全大写字母命名的变量来假定它是常量,程序员本身约定成俗就行了。


PI = 3.14159  # 告诉程序员变量 PI 不要修改。
PI = 3.2      # 虽然修改解释器不会报错,但最好不要修改。
print(PI)

在任何编程语言中,字符串都是存放在常量区,所以我们都说字符串是常量值,也就是说任何一个变量的值如果是字符串的话,我们则不能通过该变量修改字符串内的值。

strone = "Hello"
strone[1] = "x"  # Python 解释器会报错

Python 基本类型中的数字,字符串,None 和 bool 值(True 和 False)本身不能修改,我们通常把这些数据类型的值叫做右值,但在 Python2 中布尔值可以修改。

8 = 9               # 8是右值,并且 8 本身不符合变量名命名规则
"hello" = "byebye"  # "hello" 是右值,并且不符合变量名命名规则
None = 8            # None 是右值,不可以修改
False = True        # False 是右值,不可以修改

本节重要知识点

深刻理解 Python 语言中变量的内存模型。

要知道 python 中的常量的约定写法。

点赞:0 分享 海报 收藏

上一篇
MySQL下载及安装
下一篇
python如何实现向上取整
作者头像 作者名称 作者性别
韩俊
联系作者 作者主页

热门推荐

1 python动态绑定属性和方法
2 python中base64库详解
3 Python3生成器
4 Python3的set类型
5 python中的“一切皆对象”如何理解
6 Python中@property的介绍与使用

评论列表

取消回复

    •  
      Login

      韩俊

      趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

      站长 主页
      用户中心
      评论管理
      退出登陆
      • 1236文章
      • 449评论
      • 79微语
  • 广告赞助

  • 二零二三年09月
    一二三四五六日
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
  • 分类

    • 网站模板源码
    • IT技术笔记
    • 好资源分享
    • 共享网络资源
  • 最新文章

      • 小程序隐私保护指引完整填写范本
        • 微信小程序备案时遇到的一些问题
          • 迷雾通:免费科学上网的VPN软件
            • WordPress大前端主题DUX6.4版本免授权无限制版
              • 网站广告计价方式有哪些类型
                • 分析网站收录量减少的原因
                  • Nginx配置图片缓存加速,提高用户体验
                    • nginx负载均衡与正反向代理
  • 热门文章

    • 酷狗音乐VIP账号 酷狗音乐会员账号共享2017.01.29更新
    • 芒果tv vip会员账号 芒果tv会员账号共享2017.01.29更新
    • 爱奇艺vip账号 爱奇艺/PPS会员账号共享2016.12.12更新
    • 优酷/土豆vip会员账号 优酷会员账号共享2017.01.29更新
    • 活动:免费获得爱奇艺VIP/PPS会员账号50天以上的使用权!
    • 酷我音乐VIP账号 酷我音乐会员账号共享2016.12.31更新
    • 暴风影音会员账号 暴风影音会员账号共享2016.12.31更新
    • m1905会员账号 m1905会员账号共享2016.10.21更新
  • 最新评论

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=1766679359

      2345和360修改太厉害,现在都不想给...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3293901900

      感谢大大的分享

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了好奥v:如果没有解析成功,可以切换接口...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=131241242441

      现在视频解析网站怎么用不了啦?

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了全力以赴:已发送

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=471420954

      感谢大佬!麻烦您啦! 模板地址:htt...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=qleez

      感谢大佬!麻烦您啦! 模板地址:htt...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=1184503826

      回复了韩俊:万分感谢!!!

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了Moen:已发送

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了慕子訓Chester:已发送

  • 网站统计 I 当前在线:738人

    • 本站管理:1位
    • 用户总数:601位
    • 置顶文章:0篇
    • 日志总数:1236篇
    • 微语总数:79条
    • 评论总数:449条
    • 标签总数:82条
    • 页面总数:9页
    • 分类总数:14个
    • 链接总数:41条
    • 运行天数:3066天
    • 最后更新:9月19日
    • 登录
    • 注册
    • 找回
    Copyright © 2023vip共享吧网站地图 网站备案豫ICP备19004194号-1

    免责声明:本站资源仅供用于学习和交流,本站部分素材内容来源于网络,如有侵权/投稿等,请及时联系站长.

    • 首页
    • 秒懂百科 秒懂百科
    • 搜索
    • 史上今日
    • 用户

    大家都在搜

    • pptv会员
    • 网赚
    • 酷我音乐VIP账号
    • 咪咕会员账号
    • 威客平台
    • 聊天app
    • 阴阳师
    • seo
    • 全民娱乐
    • 土豆vip账号
    • 飞卢小说vip账号共享
    • 电影抢先看
    • 千图网vip账号共享
    • 迅雷VIP账号共享
    • 搜狐视频会员账号
    • 掌阅会员账号
    • 
    • 