和C/C++、Java一样,Python也有数据类型和变量两个概念。
数据类型
Python中的几个基本数据类型为整数(integer/int)、浮点数(float/float)、布尔值(boolean/bool)和字符串(string/str)。
整数
整数(integer)是最基本的基本类型。Python中用int表示整数。像0、1、103、-4这些数就是做整数。
整数还可以用二进制(以0b或0B开头)和十六进制(以0x或0X开头)表示。例如0b10为2,0x10为16。
Python的整数没有大小限制。
浮点数
浮点数(float)不同于整数,它们有小数点。Python中用float表示浮点数。像0.5、1.23、-7.4、2.0这些数就是浮点数。注意2.0在数学上是整数,但因为其有小数点,所以是浮点数。
浮点数还可以用E表示法进行表示。例如7.2e9表示7.2乘10的9次方(7200000000),-4E-7表示-4乘10的-7次方(-0.0000004)。
Python的浮点数的大小范围约为-1.79e308~1.79e308。
布尔值
布尔值(boolean)这个名字来自于数学家George Boole。Python中用bool表示布尔值。一个布尔值只可能是True或False。这个以后再讲。
字符串
字符串(string)就是用引号(单引号、双引号皆可)括起的文本。Python中用str表示字符串。例如'abc'、"str"、'Hello, world!'和"a"都是字符串。注意"a"虽然只有一个字符,但也是字符串。在本教程中,统一使用单引号括起字符串。
变量
变量是用于存储数字的内存。虽然Python和C/C++、Java这些语言一样,都有变量,但细节上还是有不同。
在Python中,变量无需声明,需要使用时直接赋值(assign)即可。例如,要使用一个变量保存人的年龄:
>>> age = 17
这里会直接创建一个变量age,并拥有int值17。赋值就是设置一个变量的值。
变量的初始类型取决于创建时给它赋的值的类型。这里17是整数,age的类型就是int。
现在输入age,得到的是17:
>>> age
17
Python变量的类型是可变的。下面的赋值使得age的类型变成float:
>>> age = 17.1
输入age,得到17.1:
>>> age
17.1
甚至可以变成布尔值(bool)或字符串(str),当然这就脱离本意了:
>>> age = True >>> age True >>> age = 'age' >>> age 'age'
使用赋值语句时,=右边不仅可以有常量,也可以有变量。例如,下面的语句把变量a的值加1:
>>> a = a + 1
从数学的角度来看,这个式子是不成立的。但是注意,这里的=是赋值号,不是等于号。这个式子的含义是:获取a的值,将其加1,再赋值给a。如果a一开始等于10,那么a+1等于11,把11赋给a,现在a等于11。
当然,右边的式子还可以更加复杂。例如:
>>> a = 10 >>> a 10 >>> a = a + 1 >>> a 11 >>> a = (a - 1) / 2 >>> a 5.0 >>> a = a * 2 - 4 * 2 >>> a 2.0
但是无论如何,赋值语句的格式如下:
variable = expression
常量
与其它编程语言不同,Python不能定义常量(constant)。在Python中,自己定义的变量都是可修改的。
然而有些时候我们也希望用一个符号表示一个常数,即使它是可以修改的。常量一般大写。例如:
PI = 3.141592653589793
再议print()
前面已经说过了,print()可以打印字符串:
>>> print('This is a string.') This is a string.
也可以打印表达式/变量,等等(实际上,这种说法不严谨):
>>> print(142857 * 2) 285714 >>> a = 10 >>> print(a) 10
但print()也可以有多个参数:
>>> apples = 10 >>> print('I have', apples, 'apples.') I have 10 apples.
使用print()打印时,如果有多个参数,print()每打印完一个(不包括最后一个),会打印一个空格(叫做分隔符);打印完最后一个,会打印一个换行符。例如这里,打印完"I have"后,会打印一个空格,然后打印apples的值,打印一个空格,最后打印"apples.",打印一个换行符。
那怎么改变print()的分隔符呢?后面你就会了解到,print()函数有一个叫做sep的默认参数,默认值为' '。可以通过显式地指定sep来改变分隔符:
>>> print('java', 'util', 'logging', 'Logger', sep='.') java.util.logging.Logger
小结
1. Python的基本类型包括int、float、bool和str。
2. Python中的变量的类型是可变的。
3. Python中不能定义常量。