在介绍 Python 的变量及数据类型前,我们还需要了解 Python 中的保留字和标识符。
保留字:有些单词在 Python 中被赋予了特殊的含义,这些单词在对象命名时都不能使用。
# 查看Python中的保留字 import keyword print(keyword.kwlist) # 保留字列表 '''['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while','with','yield']'''
标识符:给变量、函数、类、模块和其他对象起的名字。
命名规则:字母、数字、下划线,严格区分大小写,不能以数字开头,不能以保留字命名。
变量就是一个带标签的盒子,可以把需要的数据放进去,其由三部分组成:
标识:表示对象所存储的内存地址,可以使用内置函数 id() 来获取;
类型:表示对象的数据类型,可以使用内置函数 type() 来获取;
值:表示对象存储的具体数据,可以使用 print() 函数来输出打印。
name = "michael" print(name, id(name), type(name)) '''name是变量名,可以自定义; “= ”是赋值运算符,它可以将值赋给变量; "michael"这个字符串就是值''' # 输出结果 michael 2623526618800 <class 'str'>
变量,之所以叫变量,其是可以被改变的。当多次赋值后,变量名会指向新的空间。
name = "michael" print(name, id(name), type(name)) # 给name重新赋值 name = "jackson" print(name, id(name), type(name)) # 输出结果 '''可以发现,name变量的内存地址改变了,证明它指向了新的空间, 并与原来的地址断开连接,原来的内存地址也会成为内存垃圾''' michael 2787167717040 <class 'str'> jackson 2787163459952 <class 'str'>
整数类型:int(98)
浮点数类型:float(3.14)
字符串类型:str("michael jackson")
布尔类型:bool(True、False)
a = 98 b = 3.14 c = "michael jackson" d = True # 打印数据类型 print(type(a), type(b), type(c), type(d)) # 输出结果 <class 'int'> <class 'float'> <class 'str'> <class 'bool'>
英文为 integer,简写为 int,可以表示正数、负数和零。
整数的不同进制表示方式:
进制 | 基本数 | 表示方法 | 实例 |
---|---|---|---|
十进制(默认) | 0、1、2、3、4、5、6、7、8、9 | 默认表示 | 118 |
二进制 | 0、1 | 以0b开头 | 0b111010 |
八进制 | 0、1、2、3、4、5、6、7 | 以0o开头 | 0o116 |
十六进制 | 0、1、2、3、4、5、6、7、8、9 A、B、C、D、E、F | 以0x开头 | 0x76 |
a = 118 b = 0b111010 c = 0o116 d = 0x76 print(a, b, c, d) # 输出结果 118 58 78 118
由整数部分和小数部分组成。
储存不精确性:使用浮点数类型进行计算时,可能出现小数位数不确实的情况。
e = 3.1415 print(e, type(e)) n1 = 1.1 n2 = 2.2 print(n1+n2) '''浮点数计算有不确定性,所以我们需要引入Decimal库''' from decimal import Decimal print(Decimal("1.1")+Decimal("2.2")) # 输出结果 3.1415 <class 'float'> 3.3000000000000003 3.3
又称为不可变字符序列,可以使用单引号、双引号来定义(必须在一行),也可以使用三引号来定义(可以多行)。
str1 = "michael" str2 = 'jackson' str3 = '''michael jackson''' print(str1, type(str1)) print(str2, type(str2)) print(str3, type(str3)) # 输出结果 michael <class 'str'> jackson <class 'str'> michael jackson <class 'str'>
用来表示真或假的值,真为 True,假为 False。
布尔值也可以转化为整数,True ---> 1,False ---> 0。
f1 = True f2 = False print(f1, type(f1)) print(f2, type(f2)) print(1+f1) print(1+f2) # 输出结果 True <class 'bool'> False <class 'bool'> 2 1
将不同数据类型的数据拼接在一起。
函数名 | 作用 | 注意事项 | 实例 |
int() | 将其他数据类型转化为整数 | 1. 文字和小数无法转化为整数 2. 浮点数转化为整数,抹零 | int("123") int(9.8) |
float() | 将其他数据类型转化为浮点数 | 1. 文字无法转化为浮点数 2. 整数转化为浮点数,末尾加 .0 | float("9.9") float(9) |
str() | 将其他数据类型转化为字符串 | 也可以用引号转换 | str(123) "123" |
a1 = "michael" a2 = 18 a3 = 98.5 print("我叫"+a1+",今年"+str(a2)+"岁,我的成绩是"+str(a3)) print(type(a1), type(a2), type(a3)) print(type(str(a2)), type(int(a3))) # 输出结果 我叫michael,今年18岁,我的成绩是98.5 <class 'str'> <class 'int'> <class 'float'> <class 'str'> <class 'int'>