Python 变量

来源:互联网 发布:清除僵尸粉软件 编辑:程序博客网 时间:2024/06/14 14:54

简述

变量只不过是保留的内存位置,用于存储规定范围内的值。这意味着,在创建变量时会在内存中开辟一个空间。

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,例如:整数、小数或字符串等。

  • 简述
  • 何为变量
  • 变量命名
  • 变量赋值
    • 变量的基本赋值
    • 变量的重新赋值
    • 为多个变量指定同一个值
    • 将多个值分配给多个变量

版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820

何为变量?

简单地说,变量就是给数据起一个名字。。。

托马斯·卡莱尔的经典语录中有这么一句话:生命不止,奋斗不息。

Cease to the struggle and cease to the life
-- thomas carlyle

激励了无数人,多么唯美励志。。。值得铭记一生!

青春我有,加油↖(^ω^)↗,永远 18 岁。。。如果用 Python 表达的话,就是如下等式,一个名为 age 的变量被赋值为 18 。正如每个人都有姓名一样,变量的名字叫做标识符。

这里写图片描述

注意: 在很多语言中,声明变量必须要声明变量的类型。例如,要在 C++ 中声明一个整形变量,必须先声明变量的类型为 int,然后使用变量名以及变量对应的值。而在 Python 中,变量更多情况下是一种引用,对应的只是内存当中的一个值,该值可以根据需要存储不同的数据类型。

变量命名

变量可以任意取名,但必须遵循以下命名规则:

  • 由字母、数字、下划线(_)组成
  • 不能以数字开头
  • 不能使用 Python 关键字
  • 不能使用特殊符号,例如:!@#$%

例如,定义以下变量:

age = 18  // 正确_age = 18  // 正确age_18 = 18  // 正确18_age = 18  // 错误,以数字开头global = 18  // 错误,使用关键字 globala@e = 18  // 错误,使用特殊符号 @

除此之外,还需要注意:

  • 变量对大小写敏感(区分大小写)

例如,定义以下变量:

AGE = 18  // 正确age = 18  // 正确

AGE 和 age 是两个不同的变量,而非同一个。

建议: 变量名应做到见明知义,避免晦涩难懂。虽然可以是任意长度,但一般应确保精简、无歧义。

变量赋值

变量的基本赋值

变量是数据的引用,更像是标签。

例如,有一个 teacher 叫 Jack Ma,相当于将 teacher 这个标签拴在了 Jack Ma 上。通过这个 teacher,就顺延到了 Jack Ma,于是当我们叫 teacher 时,实际是在叫 Jack Ma,给人的感觉似乎 teacher 就是 Jack Ma,而事实上是 teacher 这个标签贴在了 Jack Ma 上。

>>> teacher = "Jack Ma">>> teacher 'Jack Ma'

在这里,teacher 标签就是所谓的变量,Jack Ma 就是该变量所对应的值,存储于内存中。

在 Python 中,有非常重要的一句话:对象有类型,变量无类型。 可以这样理解,就是标签不仅可以贴在整形类型的对象上,还可以贴在其他类型的对象上(例如:字符串)。变量的这个特点(随意贴标签)非常重要,它没有类型。

变量的重新赋值

变量,从字面意思理解就是变化的量,也就是说,数值是可变的。将变量从一个存储空间移至另一个存储空间中(也就是将标签移走,换到另一个位置),被称作变量的重新赋值。

例如,原来 teacher 叫 Jack Ma,后来年龄大退休了,换了一个老师叫 Pony,当我们再叫 teacher 时,其实叫的是 Pony,而非 Jack Ma。

>>> teacher = "Jack Ma">>> teacher 'Jack Ma'>>> teacher = "Pony">>> teacher 'Pony'

一开始,相当于将 teacher 这个标签拴在了 Jack Ma 上,后来标签换了位置,拴在了 Pony 上。

如果学过其他编程语言,例如:C++,很容易想到的是 teacher 开辟了内存空间,里面存了 Jack Ma,然后这个空间当中又换为 Pony。就好比 teacher 是一个容器,里面放着值。实际在 Python 当中,正好相反,Python 是以数据为主,Jack Ma、Pony 都存储在内存当中,teacher 无非是对数据的一个引用。所以,当重新赋值后,查看 teacher 所对应的地址时,会发生变化。

每个对象在内存中都有对应的地址,这就是它的“身份”,使用 Python 的内建函数 id() 来查看:

>>> teacher = "JacK Ma">>> id(teacher)140614944275064>>> teacher = "Pony">>> id(teacher)140614944310192

可以看到,重新赋值后,teacher 对应的内存空间已经变了。所以,JacK Ma 和 Pony 实际上存储在两个空间中。

为多个变量指定同一个值

同一个内存地址,可以有多个标签。这个很容易理解,一个人可以有多重身份,JacK Ma 既是 teacher,又是 ceo。

>>> ceo = teacher = "Jack Ma"

或者:

>>> teacher = "Jack Ma">>> ceo = teacher

看似不相关的变量,但他们指的都是同一个人 Jack Ma,不妨看一下:

>>> id(teacher)140614944310360>>> id(ceo)140614944310360

显然,对应的是同一个内存地址。也就是说,teacher、ceo 是不同的标签,但是所引用的数据是同一地址上的。

将多个值分配给多个变量

要将多个值分配给多个变量,可以单独分开来写:

>>> age = 18>>> teacher = "Jack Ma"

也可以连在一起:

>>> age, teacher = 18, "Jack Ma"

这里,值为 18 的整形分配给了变量 age,值为 “Jack Ma” 的字符串分配给了变量 teacher。

PS: Jack Ma 是马云,Pony 是马化腾 ~O(∩_∩)O哈哈~

3 0