本文最后更新于13 天前,在知识的增长过程中难免会有错误的理解,如有您发现有错误请发送邮件到thelistenerofrain@163.com或者留言~
变量和类型
在编程语言中,变量是数据的载体,简单的说就是一块用来保存数据的内存空间,变量的值可以被读取和修改,这是所有运算和控制的基础。计算机能处理的数据有很多种类型,最常见的就是数值,除了数值之外还有文本、图像、音频、视频等各种各样的数据类型。虽然数据在计算机中都是以二进制形态存在的,但是我们可以用不同类型的变量来表示数据类型的差异。Python 语言中预设了多种数据类型,也允许我们自定义新的数据类型
整型(int)
Python 中可以处理任意大小的整数,而且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。运行下面的代码,看看会输出什么。
print(0b100) # 二进制整数
print(0o100) # 八进制整数
print(100) # 十进制整数
print(0x100) # 十六进制整数
输出为
4
64
100
256
浮点型(float)
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2,表示$\small{1.23456 \times 10^{2}}$)。运行下面的代码,看看会输出什么。
print(123.456) # 数学写法123.456
print(1.23456e2) # 科学计数法123.456
字符串型(str)
字符串是以单引号或双引号包裹起来的任意文本,比如’hello’和”hello”。
布尔型(bool)
布尔型只有True、False两种值,要么是True,要么是False,可以用来表示现实世界中的“是”和“否”,命题的“真”和“假”,状况的“好”与“坏”,水平的“高”与“低”等等。如果一个变量的值只有两种状态,我们就可以使用布尔型。
变量命名
对于每个变量,我们都需要给它取一个名字,就如同我们每个人都有自己的名字一样。在 Python 中,变量命名需要遵循以下的规则和惯例。
规则
规则1
变量名由字母、数字和下划线构成,数字不能开头。需要说明的是,这里说的字母指的是 Unicode 字符,Unicode 称为万国码,囊括了世界上大部分的文字系统,这也就意味着中文、日文、希腊字母等都可以作为变量名中的字符,但是一些特殊字符(如:!、@、#等)是不能出现在变量名中的。所以我们通常把这里说的字母理解为尽可能只使用英文字母。
规则2
Python 是大小写敏感的编程语言,简单的说就是大写的A和小写的a是两个不同的变量,需要注意。
规则3
变量名不要跟 Python 的关键字重名,尽可能避开 Python 的保留字。这里的关键字是指在 Python 程序中有特殊含义的单词(如:is、if、else、for、while、True、False等),保留字主要指 Python 语言内置函数、内置模块等的名字(如:int、print、input、str、math、os等)。
惯例
惯例1
变量名通常使用小写英文字母,多个单词用下划线进行连接。
惯例2
受保护的变量用单个下划线开头。
惯例3
私有的变量用两个下划线开头。
变量的使用
a = 45 # 定义变量a,赋值45
b = 12 # 定义变量b,赋值12
print(a, b) # 45 12
print(a + b) # 57
print(a - b) # 33
print(a * b) # 540
print(a / b) # 3.75
在 Python 中可以使用type函数对变量的类型进行检查。程序设计中函数的概念跟数学上函数的概念非常类似,它包括了函数名、自变量和因变量。在后续的内容中有专门讲解函数的定义和使用。
a = 100
b = 123.45
c = 'hello, world'
d = True
print(type(a)) #‹class 'int'›
print(type(b)) #‹class 'float'›
print(type(c)) #‹class 'str'›
print(type(d)) #‹class 'bool'›
int():将一个数值或字符串转换成整数,可以指定进制。
float():将一个字符串(在可能的情况下)转换成浮点数。
str():将指定的对象转换成字符串形式,可以指定编码方式。
chr():将整数(字符编码)转换成对应的(一个字符的)字符串。
ord():将(一个字符的)字符串转换成对应的整数(字符编码)。
可以通过 Python 内置的函数来改变变量的类型,下面是一些常用的和变量类型相关的函数。
int():将一个数值或字符串转换成整数,可以指定进制。
float():将一个字符串(在可能的情况下)转换成浮点数。
str():将指定的对象转换成字符串形式,可以指定编码方式。
chr():将整数(字符编码)转换成对应的(一个字符的)字符串。
ord():将(一个字符的)字符串转换成对应的整数(字符编码)。
下面的例子演示了Python中类型转换的操作。
a = 100
b = 123.45
c = '123'
d = '100'
e = '123.45'
f = 'hello, world'
g = True
print(float(a)) # int类型的100转成float,输出100.0
print(int(b)) # float类型的123.45转成int,输出123
print(int(c)) # str类型的'123'转成int,输出123
print(int(c, base=16)) # str类型的'123'按十六进制转成int,输出291
print(int(d, base=2)) # str类型的'100'按二进制转成int,输出4
print(float(e)) # str类型的'123.45'转成float,输出123.45
print(bool(f)) # str类型的'hello, world'转成bool,输出True
print(int(g)) # bool类型的True转成int,输出1
print(chr(a)) # int类型的100转成str,输出'd'
print(ord('d')) # str类型的'd'转成int,输出100
str类型转int类型时可以通过base参数来指定进制,可以将字符串视为对应进制的整数进行转换。str类型转成bool类型时,只要字符串有内容,不是”或””,对应的布尔值都是True。bool类型转int类型时,True会变成1,False会变成0。在 ASCII 字符集和 Unicode 字符集中, 字符’d’对应的编码都是100。
总结
在 Python 程序中,我们可以使用变量来保存数据,变量有不同的类型,常用的类型有int、float、str和bool。在有需要的情况下,可以通过 Python 内置的函数对变量进行类型转换。变量是可以做运算的,这是解决很多问题的先决条件,我们会在下一课中为大家详细介绍变量的运算。