计算机要处理的数据各种各样,每种数据的类型是不一样的,比如有的是数字,有的是字符串等。所以 python 把数据分成了多种类型。
但是有一点要注意:由于 python 是弱类型语言,变量存储的值的类型并不固定。所以 不应该说变量的类型,而应该说变量的值的类型。
什么是字面常量?
一个字面常量(Literal Constants) 的例子是诸如5
、1.23
这样的数字或 你好
、abc
这样的文本。
这么称呼这一变量是因为它们是 字面上的 --你用的就是它字面意义上的值或是内容。数 字 2
总是表示它本身而非其他含义--它是一个 常量,因为它的值不能被改变。
因此,所有的这些都被称作字面常量。
- int(整数)
- float(浮点数)
- str(字符串)
- bool(布尔)
整数(int)
python 可以精确的处理任意长度的整数(也包括负整数)。
a = 200000000000000000000000000000000000000000000000000000
print(a)
在计算机中经常用到2进制
、8进制
、10进制
、16进制
类型的数据,python也支持这样的字面量数据。
a = 100 # 十进制的100.
print(a)
b = 0b100 # 用 0b 开头表示二进制数据
print(b)
c = 0o100 # 用 0o 开头表示八进制数据
print(c)
d = 0x100 # 用 0x 开头表示十六进制的数据
print(d)
输出结果总是使用10进制形式:
100
4
64
256
浮点数(float)
计算机中的浮点数就是我们数学中的小数。
浮点数可以用数学写法,如1.23
,3.14
,-9.01
,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109
就是1.23e9
,或者12.3e8
,0.000012
可以写成1.2e-5
等等。
注意:
整数和浮点数在计算机中的存储方式是不一样的。整数永远可以精确的表示,而大部分的浮点数是近似表示。
字符串(str)
在 python 中,用 一对双引号 ""
或 一对单引号 ''
括起来的单个或多个字符就是字符串 。
有些字符没有办法直接写在 单引号或者双引号中,比如回车、换行、制表符等。这时候需要借助转义字符来。
\
是转义字符。(几乎在所有的编程语言中都是它)
转义字符串 | 含义 |
---|---|
\n | 换行 |
\' | 单引号 |
\" | 双引号 |
\ | \ |
\t | 制表符 |
\r | 回车 |
\b | 退格(back) |
如果不想让字符串中的转义字符起作用,则可以在字符串前面添加 r
来表示. 这样的字符串我们称之为原始字符串(raw string)
a = r'abc\nx\tyz'
print(a)
print("------")
b = 'abc\nx\tyz'
print(b)
如果一个字符串内有多行数据,又不想写过多的 \n
则可以使用 3 对单引号或双引号来表示。
a = '''hello
world
哈哈哈哈'''
print(a)
b = """hello
world
哈哈哈哈
"""
print(b)
在 python 中的字符串是不可变的。
这意味着一旦你创造了一串字符串,你就不能再改变它。尽管这看起来像是一件坏事,但实 际上并非如此。
布尔值(bool)
布尔值表示一种逻辑值。在 python
中只有 2 个字面量布尔值 True
和 False
。
可以使用字面量布尔值,也可以通过一定的计算得到布尔值。
a = True
b = False
c = 3 > 4
print(a)
print(b)
print(c)
注意:bool 是int的子类,继承自int,打开python 控制台,输入help(bool)
测试变量或常量的数据类型
python 提供了两个内置函数来判断数据的类型
方式1: type(变量或常量)
print(type(True))
a = 3
print(type(a))
如果想得到bool
型的结果,则可以使用下面的方式
print(type(True) is bool)
a = 3
print(type(a) is int)
print(type(a) is float)
方式2:isinstance(变量或常量, 类型)
print(isinstance(3, int))
a = True
print(isinstance(a, str))
b = 2.2
print(isinstance(b, float))
isinstance()
还可以针对一个数据,同时判断多种数据类型,只要有一个满足就返回True
print(isinstance(3, (float, int, str))) # True