python变量和常量_python 变量与常量 - 刘江的python教程

变量与常量

阅读: 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

回复

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

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

相关文章

代价敏感多标签主动学习的代码开发跟踪

1 简介 代价敏感多标签主动学习目前是闵老师小组正在进行的一个开发项目,目的是将代价敏感和主动学习思想应用到多标签学习中。整个Java代码涵盖了很多技术:并行计算、batch处理。本文就是在学习这个代码后的一些总结。学习方法采用的至顶向下。 2 Cma…

pb 打印html页面,用PB开发WEB应用

用PB开发WEB应用用PB开发WEB应用烟台教育学院网络中心 孙连三一、PB Window plug -in 的用途PowerBuilder Window plug -in 的用途是在HTML 页面中插入PowerBuilder 中定义的窗口对象,此窗口对象上定义的功能在浏览器中一样被执行&#xff0…

python上传文件接口_python程序的web接口:上传和下载文件

我正在尝试制作一个简单的web应用程序,其中可以上载一个文件并将该文件提供给python脚本。烧瓶似乎适合这种用途。然后,用户可以从脚本下载文件输出。请告诉我如何解析python脚本中的文件并获得输出。到目前为止,我成功地完成了以下上载文件的…

两列布局 html5,CSS两列布局的N种实现

原理:两个元素都设置dislpay:inline-block,为了消除html空格的影响,父元素的font-size需要设置为0,右侧自适应元素的宽度使用calc函数计算。如果两个元素的高度不一样,可以给元素设置vertical-align:top调整。缺点&…

python如何提取图片特征向量_在python中计算图像的特征向量

我正在尝试将二维高斯拟合到图像中。噪声很低,所以我试图旋转图像,使两个主轴不同时变化,算出最大值,然后计算两个维度的标准偏差。选择的武器是Python。。然而,我一直在寻找图像的特征向量——numpy.linalg.py假设离散…

2021年9月24日和学生隆兴的学术讨论

QRCode: (1)做实验 (2)了解它的基本原理 调包侠 语言: (1)程序设计语言(交流,不规范) (2)数学(语言) &#x…

html加上百度统计,vue单页面应用加入百度统计

版权声明:本文为CSDN博主「钟文辉」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_39753974/article/details/80322643在单页面中,要是只加在head中的话那…

推荐系统:猜你喜欢

0 简介 网络的迅速发展带来了信息超载(information overload)问题。解决信息超载问题一个非常有潜力的办法是推荐系统,它根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户。推荐系统最典型应用领域是电子商务领…

量子计算机九章能否预测未来,张礼立 : 中国 “九章”量子计算机到底厉害在哪?...

原标题:张礼立 : 中国 “九章”量子计算机到底厉害在哪?【背景信息】12月4日,《科学》杂志公布了 中国 “九章” 的重大突破。 这台由中国科学技术大学潘建伟、陆朝阳等学者研制的76个光子的量子计算原型机,推动全球量…

python的继承用法_python中继承有什么用法?python继承的用法详解

本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。面向对象三大特征1.封装:根据职责将属性和方法封装到一个抽象的类中2.继…

利用GAN实现QR Code超分辨率的研究

文章目录1 传统方案2 基于CNN的实现方案2.1 SRCNN2.2 WeChat AI3 基于GAN的实现方案3.1 SRGAN3.2 ESRGAN3.3 Real-ESRGAN4 基于GAN的QR Code的实现方案1 传统方案 https://blog.csdn.net/caomin1hao/article/details/81092134?utm_mediumdistribute.pc_relevant.none-task-bl…

HTML5清除2个div标签的空白,DIV标签里面IMG图片下方留有空白怎么办

我们很多个人博客网站都会广告位投放一些图片广告,在网页设计中,图片是不可缺少的素材,但是在 div 标签里面放入 img 图片的话,有时候会在图片的下方出现一行空间的区域,如果单纯的图片不醒目或是图片所在的位置不重要…

python notebook软件_Jupyter notebook快速入门教程(推荐)

本文主要介绍了Jupyter notebook快速入门教程,分享给大家,具体如下:本篇将给大家介绍一款超级好用的工具:Jupyter notebook。为什么要介绍这款工具呢?如果你想使用Python学习数据分析或数据挖掘,那么它应该…

推荐系统国内外团队介绍

1 何向南团队 http://staff.ustc.edu.cn/~hexn/

如何用计算机截部分屏,电脑如何长屏幕的截图?电脑截取长屏的方法

新手用户对windows系统截取长屏的方法比较陌生,正常情况下,我们截取屏幕内容是登录QQ,按ctrlalta来截取屏幕的,只能截取部分内容,无法截图整个页面。日常的工作生活中,截图是经常会用到的,如果你…

Audio-based snore detection using deep neural networks解读

0 摘要 Background and Objective: 打鼾是一种普遍现象。 它可能是良性的,但也可能是阻塞性睡眠呼吸暂停 (OSA) 一种普遍存在的睡眠障碍的症状。 准确检测打鼾可能有助于筛查和诊断 OSA。 Methods: 我们介绍了一种基于卷积神经网络 (CNN) 和循环神经网络 (RNN) 组合…

python实战讲解_Python数据可视化实战讲解

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。开运张 | 作者知乎专栏 | 来源三个步骤:确定问题,选择图形转换数据,应用函数参数设置,一目了然首先对…

2018计算机专业考研报名人数,2018年全国考研报考人数、各省市考研报考人数、历年考研录取率、全日制及非全日制硕士研究生比例及考研动机分析【图】...

一、考研报考人数、录取率及报录比分析从上世纪末开始,研究生和本科生招生数量一样在逐步增多。本科扩招的同时,研究生也在扩招。1999年,全国报考研究生人数31.9万,录取人数7.3万,录取率22.8%。2008年,报考…

标记分布学习与标记增强

1 标记增强 标记增强是指将训练样本中的原始逻辑标记转化为标记分布的过程. 与基于嵌入 (embedding) 的 多标记分类方法相似, 标记增强也同样依赖于对隐含在训练样本中的标记相关信息的挖掘.

学python开发必须要会wsgi么_python Web开发你要理解的WSGI uwsgi详解

WSGI协议首先弄清下面几个概念:WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信…