无论使用什么语言编程,其最终目的都是对数据进行处理。程序在编程过程中,为了处理数据更加方便,通常会将其存储在变量中。

形象地看,变量就像一个个小容器,用于“盛装”程序中的数据。除了变量,还有常量,它也能用来“盛装”数据,它们的区别是,常量一旦保存某个数据之后,该数据就不能发生改变;但变量保存的数据则可以多次发生改变,只要程序对变量重新赋值即可。

Python 使用等号(=)作为赋值运算符,例如 a = 20 就是一条赋值语句,这条语句用于将 20 装入变量 a 中,这个过程就被称为赋值,即将 20 赋值给变量 a。

注意,变量名其实就是标识符,因此在命名时,既要遵守 Python 标识符命名规范,还要避免和 Python 内置函数以及 Python 保留字重名。

如果你接触过 C、C++Java 这些高级编程语言会发现,它们在使用变量存储数据时,必须指定该变量所能存储的数据类型,以 C 语言为例:

int a = 20

这行 C 语言代码的意思是,声明一个整形变量 a 来存储整数 20,这就意味着,我们无法用 a 存储小数、字符以及字符串等其他类型数据,这类编程语言被称为强类型语言。

和强类型语言相对应的是弱类型语言,Python 就是典型代表之一。弱类型语言有以下 2 个特征:

  1. 变量无须声明即可直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。
  2. 变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。

对于没有编程基础的读者,可以先不编写真正的 Python 程序,而是先打开 Python 的交互式解释器,在这个交互式解释器中“试验” Python。首先,在 Python 解释器中输入如下内容:

>>> a = 5
>>>

上面代码没有生成任何输出,只是向交互式解释器中存入了一个变量 a,该变量 a 的值为 5。

如果我们想看到某个变量的值,可以直接在交互式解释器中输入该变量。例如,此处想看到变量 a 的值,可以直接输入 a。

>>> a
5
>>>

可以看到,Python 解释器输出变量 a 的值为 5。

接下来,我们尝试改变变量 a 的值,将新的值赋给变量 a,例如:

>>>a = 'Hello , Charlie'
>>>

这会导致变量原来的值被新值覆盖掉,换句话说,此时变量 a 的值就不再是 5 了,而是字符串“Hello , Charlie”,a 的类型也变成了字符串。现在再输入 a,让交互式解释器显示 a 的值:

>>> a
'Hello , Charlie'

如果想查看此时 a 的类型,可以使用 Python 的 type() 内置函数。

>>> type(a)
<class 'str'>
>>>

可以看到,a 的类型是 str(表示字符串类型)。

形象地说,函数就相当于一个有魔法的“黑盒子”,你可以向这个“黑盒子“提供”一些数据,这个“黑盒子”会对这些数据进行处理,这种处理包括转换和输出结果。比如 print() 也是一个函数,它的作用就是输出传入的数据。此处 type() 函数的作用则用于输出传入数据的类型。

最后,如果想把上面的交互过程转换成真正的 Python 程序,只要将过程中输入的每行代码放在一个文件中,并使用 print() 函数来输出变量,最后将该文件保存为以 .py 结尾的源文件即可。

在交互式解释器中,只要输入变量名,交互式解释器就会输出变量的值,但在 Python 程序中则必须使用 print() 函数来输出变量。

上面的交互过程对应的程序如下:

  1. #定义一个数值类型变量
  2. a = 5
  3. print(a)
  4. #重新将字符串赋值给a变量
  5. a = 'Hello , Charlie'
  6. print(a)
  7. print(type(a))

通过使用 python 命令或者 IDLE 中的“Run->Run Module”菜单项运行程序(具体操作可阅读《第一个Python程序》一节),即可看到如下输出结果:

5
Hello , Charlie
<type 'str'>

最新文章

  1. HTTP协议的报文结构
  2. Apache和Tomcat区别
  3. Isomorphic Strings
  4. MongoDB 启动mongo不带DB
  5. pyqt中QDateTimeEdit/QDateEdit相关使用方法
  6. Java对证书的操作
  7. cache在spring中使用
  8. 传统的log4j实战
  9. Linux 下实现控制屏幕显示信息和光标的状态
  10. r语言之给定的概率密度函数生成随机数
  11. [置顶] linux常用命令手册
  12. 爬虫day 04(通过登录去爬虫 解决django的csrf_token)
  13. python3操作socketserver
  14. Python网络数据采集PDF
  15. 一张图了解Spring Cloud微服务架构
  16. python3高级编程
  17. SQL列转行用逗号隔开
  18. mysql-8.0.12-winx64 解压版安装(转)
  19. Hive 数据的导入导出
  20. Structured Streaming教程(1) —— 基本概念与使用

热门文章

  1. 版本控制器之SVN(二)
  2. jinja2 模板相关
  3. USB fuzzing
  4. Task的取消
  5. jquery中的obj.attr()和obj.data
  6. This application has no explicit mapping for /error, so you are seeing this as a fallback.
  7. 请手写代码实现一个promise
  8. Python 第一个程序
  9. todo 看看堆栈里的东西
  10. json串到java对象