变量与常量

阅读: 17356

评论:7

变量:在程序运行过程中,值会发生变化的量

常量:在程序运行过程中,值不会发生变化的量

无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。

Python 中的变量不需要声明类型。

这是根据Python的动态语言特性而来。变量可以直接使用,而不需要提前声明类型。例如下面的a,b,c,d四个变量,在使用前没有进行任何的诸如int a, str b, list c ,int d的类型声明,而这在C和JAVA中是必须的。

>>> a = 4

>>> b = "haha"

>>> c = []

>>> d = 9-5

用“=”号来给变量赋值

a = 100

这里的等号要理解并读作“赋值”,而不是“等于”,“赋值”是对变量的操作,而“等于”是对两个变量进行比较。上面的a,b,c,d四个变量,就通过“=”号,赋予了不同的值。

每个变量在使用前都必须赋值,变量赋值以后才会被创建。

新的变量通过赋值的动作,创建并开辟内存空间,保存值。如果没有赋值而直接使用会抛出赋值前引用的异常或者未命名异常。例如:

>>> a # 孤单单一个a,什么也表示不了,只能报错

Traceback (most recent call last):

File "", line 1, in

a

NameError: name 'a' is not defined

>>> a = 1 # 这样就没问题了,解释器知道a是个新变量了

>>> c.append(1) # c是个什么鬼?

Traceback (most recent call last):

File "", line 1, in

c.append(1)

NameError: name 'c' is not defined

Python中,一切事物都是对象,变量引用的是对象或者说是对象在内存中的地址。

这条我们靠后详说。

在Python中,变量本身没有数据类型的概念,通常所说的“变量类型”是变量所引用的对象的类型,或者说是变量的值的类型。

>>> a = 1

>>> a = "haha"

>>> a = [1, 2, 3]

>>> a = { "k1":"v1"}

例子中,变量a在创建的时候,赋予了值为1的整数类型,然后又被改成字符串“haha”,再又变成一个列表,最后是个字典。变量a在动态的改变,它的值分别是不同的数据类型,这是动态语言的特点。

“=”号这个赋值运算符是从右往左的计算顺序。

>>> a = 1

>>> b = 2

>>> c = a + b # 先计算a+b的值,再赋给c

>>> c

3

Python允许同时为多个变量赋值。

例如:a = b = c = 1,最终大家都是1。

也可以同时为多个变量赋值,用逗号分隔,逐一对应。

例如:a, b, c = 1, 2, 3,最后a是1,b是2,c是3.

不要把赋值语句的等号等同于数学的等号。

x = 1

x = x + 2

如果从数学上理解x = x + 2那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式x + 2,得到结果3,再赋给变量x。由于x之前的值是1,重新赋值后,x的值变成3。

同时,理解变量在计算机内存中的表示也非常重要。当我们写:

a = 'ABC'时,Python解释器干了两件事情:

1.在内存中创建了一个‘ABC’的字符串对象;

2.在内存中创建了一个名为a的变量,并把它指向'ABC'。

也可以把一个变量a赋值给另一个变量b,这个操作实际上是将变量b指向变量a所指向的数据,例如下面的代码:

a = 'Jack'

b = a

a = 'Tom'

print(b)

print(a)

最后变量b的内容到底是'Jack'还是'Tom'?如果从数学意义上理解,就会错误地得出b和a相同是‘Tom’,但实际上b的值还是'Jack ‘!

请牢记:Python中的一切都是对象,变量是对象的引用!:

执行a = ‘Jack’,解释器创建字符串‘Jack’对象和变量a,并把a指向‘Jack’对象;

执行b = a,解释器创建变量b,并且将其指向变量a指向的字符串‘Jack’对象;

执行a = ‘Tom’,解释器创建字符串‘Tom’对象,并把a改为指向‘Tom’对象,与b无关。

最后我们还要说下常量!

常量就是不变的变量,比如常用的数学常数圆周率就是一个常量。在Python中,通常用全部大写的变量名表示常量:

PI = 3.14159265359

但事实上,从Python语法角度看,PI仍然是一个变量,因为Python根本没有任何机制保证PI不会被改变。你完全可以给PI赋值为10,不会弹出任何错误。所以,用全部大写的变量名表示常量只是一个习惯上的用法。

常量通常放置在代码的最上部,并作为全局使用。

评论总数: 7

用的什么版本啊

By

wmdsjhj   On

2019年1月9日 10:15

回复

1.11

博主

回复

wmdsjhj

2019年1月9日 19:40

回复

谢谢博主

By

我是陈独秀我还想发言   On

2018年12月15日 11:20

回复

教程很贴合广大学生的实际,真的很赞!

By

虎啸云飘舞   On

2018年11月15日 21:46

回复

我是一个初学者 以前只是在大学里学过C 希望跟你多多学习!

By

严溪彬   On

2018年8月1日 23:19

回复

看了你写的BOLG受益良多 希望你能贡献更多更好等教程

By

堰塘捞鱼   On

2018年7月16日 15:57

回复

第一次浏览你的网页很感谢你,希望你能够继续在这方面付出。

By

爱肖男   On

2018年7月14日 01:50

回复

python变量和常量_python 变量与常量 - 刘江的python教程相关推荐

  1. python 异步 生产者 消费者_python 生产者消费者模式 - 刘江的python教程

    生产者消费者模式 阅读: 9884 评论:4 利用多线程和队列可以实现生产者消费者模式.该模式通过平衡生产线程和消费线程的工作能力来提高程序整体处理数据的速度. 什么是生产者和消费者? 在线程世界里, ...

  2. python变量和常量_python变量与常量内容:

    ''' python变量与常量内容: ''' # 变量:定义世间万物变化的状态 ''' height 180 weight 140 age 18 tree_name yuyang ''' # prin ...

  3. python变量和常量_Python数学模块常量和示例

    python变量和常量 Python数学模块常量 (Python math module constants) In the math module, there are some of the de ...

  4. 符合python语言变量命名规则_Python变量命名规则

    变量的命名规则 1.要具有描述性 2.变量名只能_,数字,字母组成,不可以是空格或者特殊字符([email protected]#$%^&*~) 3.不能以中文为变量名 4.不能以数字开头 5 ...

  5. python变量名区分大小写_python变量名要不要区分大小写

    python变量名要不要区分大小写 发布时间:2020-11-23 11:40:34 来源:亿速云 阅读:106 作者:小新 小编给大家分享一下python变量名要不要区分大小写,相信大部分人都还不怎 ...

  6. python变量赋值方式_python变量和变量赋值的几种形式

    动态类型的语言 python是动态类型的语言,不需要声明变量的类型. 实际上,python中的变量仅仅只是用来保存一个数据对象的地址.无论是什么数据对象,在内存中创建好数据对象之后,都只是把它的地址保 ...

  7. python变量的赋值_python变量赋值|变量赋值

    python变量赋值 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型" ...

  8. python变量详解_Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 1 P ...

  9. python变量区分大小写吗_Python变量名是不是区分大小写的

    Python变量名是不是区分大小写的 发布时间:2020-11-10 14:13:23 来源:亿速云 阅读:95 作者:小新 Python变量名是不是区分大小写的?这个问题可能是我们日常学习或工作经常 ...

最新文章

  1. Spring MVC 4
  2. 如何让 Mybatis 自动生成代码,提高开发效率
  3. 比特币现金BCH 硬分叉,能否突破$1500?
  4. 【计算机组成原理】字符、字符串以及汉字的表示方法
  5. css 奇淫技巧 行内快 父级padding 子级margin 抵消
  6. curviloft插件怎么用_完结篇——你想要的逆天插件系列这里都有
  7. Android* 4.1.1 (Jelly Bean) x86 模拟器系统映像
  8. 通过draggable实现布局_营销推广引流之百度霸屏内容详解 如何通过百度霸屏布局实现立体打法!...
  9. Centos 6.3下使用源码安装Mysql 5.5
  10. Latex符号对照表
  11. python编程单词排序_Python:对输入的单词进行字典序排序输出
  12. UML视图---构件图和部署图
  13. 基于linux环境tcp网络编程(在线英英词典)文档 [1]
  14. 【矩阵论 图论】期末考试复习思维导图
  15. 山东腾飞科尔沁 国稻种芯·中国水稻节:内蒙沙漠万亩水稻
  16. Ubuntu22.04设置静态ip
  17. chatgpt国内能用吗?详细解读gpt的使用方法
  18. 台式计算机的辐射程度,台式台式电脑辐射污染标准是多少
  19. 实木地板被机器人弄成坑_钱花光哭成泪人,28个让人撕心裂肺装修坑,不注意新房就会被毁!...
  20. 这届网友实在是太有才了!用python爬取15万条《我是余欢水》弹幕

热门文章

  1. 汇编中各寄存器的作用(16位CPU14个,32位CPU16个)和 x86汇编指令集大全(带注释)
  2. Java消息服务~JMSReplyTo示例
  3. Form Template Method(塑造模板函数)
  4. [记录] --- safari浏览器对于yyyy-MM的坑
  5. 软件工程作业 - word count
  6. 现代软件工程 团队作业 - 软件分析和用户需求调查 (2013)
  7. 北航 2012 秋季 现代软件工程 团队项目要求
  8. 现代软件工程 教学计划 适应两种难度和重点
  9. treeview控件怎么折叠_拍摄的视频闪烁怎么办?一招就能搞定,电脑手机都适用...
  10. 不安装oracle 连接数据库,不安装oracle 连接服务器oracle数据库方法