参考资料: Python程序设计与实现

变量名的命名规则

  1. 仅仅由大、小写英文字母,下划线(_),数字(不可作为变量名的开头)组合而成;
  2. 不能使用Python关键字和函数名作为变量名;
  3. 变量名不能包含空格,但可以使用_来分隔其中的单词;
  4. 变量名应既简短又具有描述性;
  5. 慎用字母lO,因为它们可能被人错看成数字1和0。

python变量不需要声明变量类型

python规定,变量是没有类型之分的,变量的使用不需要提前声明和定义,只需对变量进行赋值,赋值的同时该变量即被创建。

Python是动态的,变量的类型由赋予它的值来决定。

示例:

a=2
type(a)
int
b=a
type(b)
int
a=2.5
type(a)
float
type(b)
int
print(a)
print(b)
2.5
2
b=b*a
print(b)
5.0

注意:

在程序中可以随时修改变量的值,而python将始终记录变量的最新值。

示例:

a='hello'
print(a) a='world'
print(a)
hello
world

赋值语句(没有返回值)

形式:\(变量=值\)

增值变量

A+=B 等价于 A=A+B. 一般 A+=B 更加高效,避免复制两次 A.

+可以换成-,*,/,%,**等符号。

变量的引用

在Python中,对象是最基本的概念。整数,浮点数,字符串,元组,列表,字典等数据结构都是作为对象存在的。

每个对象都有两个标准的头部信息:

  1. 标识对象的类型的类型标识符;
  2. 记录对象引用次数的计数器。

Python中变量是没有类型的,类型的概念是属于对象的。使用id()函数可以返回对象的内存地址。

n=7
id(n)
1973873296

赋值语句的使用原理:

  1. 创建一个对象,前提是该对象未被创建。
  2. 创建一个变量,前提是该变量未被创建。
  3. 将对象的引用值赋给变量,引用器值增加1。

引用就是将对象和变量绑定起来。通过引用将变量指向了一个对象的内存空间,故可以说变量是对象的标签。

赋值语句是使变量建立对象的引用值的,而不是复制对象。

以下示例可以很好的说明:

R=[2,4,5,8]
S=R
S
[2, 4, 5, 8]
R
[2, 4, 5, 8]
id(S)==id(R)
True
R[2]=6
R
[2, 4, 6, 8]
S
[2, 4, 6, 8]
id(S)==id(R)
True

由于id(S)==id(R)返回True,故而赋值不是复制,仅仅是引用对象(即“将对象赋值给变量”相当于“用变量给对象贴上了标签”)

增量赋值与普通赋值的区别

  • 二者对于不可变对象的处理方式见赋值语句的使用原理
  • 对于可变对象,二者便会不同,增量赋值会将可变对象就地修改,而不是创建新的对象。

举例说明:

L=[1,2,3]
id(L)
2196737070792
L+=[4]
id(L)
2196737070792
L=L+[4]
id(L)
2196741665416

多重赋值

示例:

X=Y=Z=22
print(X)
print(Y)
print(Z)
22
22
22
X,Y,Z=2,"U",3.56
print(X)
print(Y)
print(Z)
2
U
3.56
Y,X=X,Y
print(X)
print(Y)
U
2

赋值生成引用,而不是拷贝###

不可变类型不可在原处改变###


python——变量的更多相关文章

  1. Python 变量类型

    Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

  2. Python变量、数据类型6

    1.Python变量 变量,即代表某个value的名字. 变量的值存储在内存中,这意味着在创建变量时会在内存中开辟一个空间. !!!即值并没有保存在变量中,它们保存在计算机内存的深处,被变量引用.所以 ...

  3. Python变量类型

    Python变量类型 变量是存储在内存中的值,因此在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定的内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型, ...

  4. C与Python变量的区别

    C中变量有类型,代表一定内存. 而Python变量只是封装过的指针,没有类型.如果不指向对象,就没有意义,更谈不上类型. python中 a=b,和C中 a=b是完全不同的两个操作.前者只是指针(引用 ...

  5. Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习

    #coding=utf-8 __author__ = 'Administrator' #Python变量类型 #Python数字,python支持四种不同的数据类型 int整型 long长整型 flo ...

  6. 【python系列】--Python变量和数据类型

    python数据类型 一.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用 ...

  7. [Python]基础教程(4)、Python 变量类型

    Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

  8. python变量与基础数据类型

    一.什么是变量 变量是什么?  变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用.在python中一切都是变量. 1.python变量命名的要求 1,必须有数字,字母,下划线任意组合. ...

  9. python变量传递

    python变量传递 数值 代码 num_1 = 123 num_2 = num_1 # 改变num_2值前 print 'num_1 = {0}, num_2 = {1}'.format(num_1 ...

随机推荐

  1. Swift实现JSON转Model - HandyJSON使用讲解

    背景: 很多时候,我们从服务端请求下的数据都是Json格式,我们需要拿这些数据显示到我们的UI界面. 因此,我们的做法基本都会先将json转为方便使用的数据模型,或者也可以直接转字典解决. 在OC中, ...

  2. .net core建站踩坑记录

    系统:win10 VS版本:2017 .NET Core 版本: 1.1 零.读取配置文件 参考:http://www.tuicool.com/articles/QfYVBvi 此版本无需添加其他组件 ...

  3. springmvc+jdbc连接数据库(第一个微商项目,代理注册)

    String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");手动自动生成Uuid ...

  4. Luogu 1090 合并果子(贪心,优先队列,STL运用)

    Luogu 1090 合并果子(贪心,优先队列,STL运用) Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每 ...

  5. 以Random Forests和AdaBoost为例介绍下bagging和boosting方法

    我们学过决策树.朴素贝叶斯.SVM.K近邻等分类器算法,他们各有优缺点:自然的,我们可以将这些分类器组合起来成为一个性能更好的分类器,这种组合结果被称为 集成方法 (ensemble method)或 ...

  6. [信息安全] 4.一次性密码 && 身份认证三要素

    [信息安全]系列博客:http://www.cnblogs.com/linianhui/category/985957.html 在信息安全领域,一般把Cryptography称为密码,而把Passw ...

  7. ASP.NET MVC Bundles 用法和说明(打包javascript和css)

    本文主要介绍了ASP.NET MVC中的新功能Bundles,利用Bundles可以将javascript和css文件打包压缩,并且可以区分调试和非调试,在调试时不进行压缩,以原始方式显示出来,以方便 ...

  8. (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

    场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...

  9. (转)Apache与Tomcat 区别联系

    Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是web服 ...

  10. 【PHP】linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明(转)

    linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明:一.mysql5.0.2的安装配置过程及说明:1. #tar -zvxf mysql-5.0.2-alpha. ...