目录
变量类型
在Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
在内存中创建一个变量会包括:名称、保存的数据、存储数据的类型、地址(标示)。
1、基础类型
-
整数(int):表示整数值,例如1、-5、100等。
-
浮点数(float):表示带有小数点的数值,例如3.14、-0.5等。
-
布尔值(bool):表示True或False,用于逻辑运算。
-
字符串(str):表示文本数据,用单引号(')或双引号(")括起来,例如"Hello, World!"。
-
字节串(bytes):表示二进制数据,以字节为单位,例如b'hello'。
-
空值(NoneType):表示一个特殊的空值,通常用于表示缺失或未定义的值。
在Python中,定义变量时不需要指定变量类型:
a = 10
print(type(a)) # int
a = 12.36
print(type(a)) # float
a = True
print(type(a)) # bool
a = "teacher" # 用单引号''或者双引号""括起来
print(type(a)) # str string 字符串
a = b"hello"
print(type(a)) # bytes
2、引用类型(复合类型)
-
列表(list):用于存储一组值,可以包含不同类型的元素。
-
元组(tuple):用于存储一组值,元素不能被修改。
-
字典(dict):键值对映射,用于存储关联性数据,由键和对应的值组成。
-
集合(set):无序集合,用于存储唯一的元素,不允许重复。
-
枚举类型(Enum):本质上是一个类,它是标准库中的
enum
模块提供的一个功能,用于创建有限的、命名的枚举类型 -
自定义类(class):创建自定义类来表示复杂的数据结构,具有自定义属性和方法
b = [] # 列表类型 可变序列 可包含不同类型的元素
print(type(b))
c = () # 元组类型 不可变序列 元素不能被修改
print(type(c))
d = {} # 字典类型 可变序列 键值对映射 键和对应的值组成
print(type(d))
# 集合类型 可变序列 用于存储唯一的元素 不允许重复
使用del可以删除变量:
x = 100
y = 200
del x, y
# print(x) name 'x' is not defined 不希望后面的代码使用之前变量中保存的数据,为了程序的高性能可以删除该变量
确定不再使用该变量时,使用del删除即可。
变量总结:
1、变量可以保存数据和修改数据;
2、访问变量中的数据:访问的变量必须已经声明过,且访问到的数据一定是访问时最近一次修改的数据;
3、存储和取出数据:若没有变量就可以存储但不能取出,若有变量既可以存储又可以取出。
Python注释
在 Python 中,注释不影响程序的执行,但会使代码更易于阅读和理解。
Python 中的注释有单行注释和多行注释。
1、单行注释
使用井号 # 进行单行注释
# 1、单行注释:
# print(123)
注释快捷键:Ctrl + /
2、多行注释
可以使用单引号 ''' 或双引号 """ 来进行多行注释:
# 2、多行注释 单引号、多引号
'''
多行注释1
多行注释2
多行注释3
'''
"""
多行注释1
多行注释2
多行注释3
"""
注意:多行注释可以嵌套使用,而单行注释不可以
'''
多行注释1
多行注释2"""多行注释2.1"""
多行注释3
'''
"""
# 注释
"""
Python数字
1、数字类型
-
整型(int)
通常被称为是整型或整数,是正或负整数,不带小数点。
# int
x1 = 1
x1 = -5
x1 = 0
print(x1)
print(type(x1))
-
浮点型(float)
浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
# float 科学计数法: 2.5e2 = 2.5*10² = 2500.0
x2 = 3.14
x2 = 5.0
x2 = 3.7e3
print(x2)
print(type(x2))
-
复数( complex)
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
# complex 复数
x3 = 10 + 2j
x3 = complex(5, 8)
print(x3)
print(type(x3))
-
布尔类型(bool) 是整型的子类型。
-
表示真假、对错、黑白等;
-
True和False:其首字母是大写的,类型转换是为1和0;
-
类型转换为bool:使用bool()小方法
-
非0都是True
-
0、0.0、-0.0、空字符串、空列表、空字典、空集合、空元组、None等都是False;
-
# bool 整型的子类型 True False 都是大写 类型转换为1 0
print(type(True))
# 其他类型转换为bool类型:bool() 非零都是True
# 0、0.0、-0.0、空字符串、空列表、空字典、空集合、空元组、None等都是False
x4 = bool(50)
x5 = bool(0)
x6 = bool(-1)
x7 = bool(3.14)
print(x4)
print(x5)
print(x6)
print(x7)
2、进制及数字类型转换
进制
# 进制
# 二进制
a1 = 0b110
print(a1) # 打印时默认打印十进制的数值
# 八进制
a2 = 0o10
print(a2)
# 十六进制 0-9 A-F
a3 = 0x10
print(a3)
# 十进制
a4 = 100
更多详细内容可参考:十进制,二进制,八进制,十六进制的解意和详细转换
类型转换
将数据类型作为函数名,即可通过调用这些函数完成对数据内置的类型进行转换:
-
int(x) 将x转换为十进制整数
-
float(x) 将x转换到一个浮点数。
-
bin(x)将x转换为二进制
-
oct(x)将x转换为八进制
-
hex(x)将x转换为十六进制
-
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
-
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字.
-
bool(x)将 x 转化为布尔值
# 数字的类型转换
# 将数据类型作为函数名即可
x = 3.75
x = int(x)
print(x)
print(type(x))
b1 = 100
b1 = float(b1)
print(b1)
print(type(b1))
# 转二进制 bin()
b2 = bin(6)
print(b2)
# 转八进制 oct()
b3 = oct(8)
print(b3)
# 转十六进制 hex()
b4 = hex(0o111)
print(b4)
# 十六进制转十进制
b5 = int(b4, 16) # 注意b4为十六进制数据 传入十六进制 int转十进制
print(b5)
3、数字运算
算术运算符
-
+
:加法 -
-
:减法 -
*
:乘法 -
/
:除法(总是返回一个浮点数) -
%
:取模(取余数) -
**
:幂运算 -
//
:整除(取整数部分)(得到的并不一定是整数类型的数,它与分母分子的数据类型有关系 )
# 数字类型的数据的相关算术运算
# 加减
a = 10
b = 5
c = a + b # 算数运算 从左向右
d = a + b +c
print(d)
x1 = 10
x2 = 3.14
x3 = x1 + x2
print(x3) # 如果参与加法运算的数字包含float 运算结果为float
print(0.1 + 0.2) # 误差 python语言的算术运算底层计算机是二进制运算 无法表示部分小数的运算
print(x1 - x2)
# 可用于计算模型得分
print(True + True)
print(True + False)
print(False + True)
print(False + False)
# 乘除
print(10*2)
print(10.0*2)
print(5/1)
print(type(5/1)) # 除法运算结果总是float
# 求余(模)
r = 270
r_ = r % 55
print(r_)
# 幂运算
print(2**8)
print(2**0.5)
# ()是优先级最高的运算符
print((3*2)**3)
# 整除 // 取整数部分
print(11//3)
# 整除得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。
print(8.5/5)
print(8.5//5)
比较运算符
比较运算符的运算结果为布尔值;
-
==
:等于
# == 比较数字的值的大小是否相等
a = 3.14
b = 3.1415926
print(a == b)
a = 0.1
b = 0.2
c = 0.3
print((a + b) == c)
print(id(a+b), id(c))
print(0 == -0)
print(10.0 == 10)
print(id(10.0), id(10))
-
!=
:不等于
a = 25
print(a != 20)
-
<
:小于 -
>
:大于
print(100 > 99)
print(100 > 100)
print(100 < 99)
-
<=
:小于等于 -
>=
:大于等于
a = 10
b = 20
c = 15
print(a < b < c) # False
print(a < c < b) # True -> 两个符号同时参与比较 没有先后运算顺序
age = 18
print(age >= 18) # age =>18 是错误写法
# is not 判断对象是否不一致 即两个对象在内存中的地址是否不同
a = 10
b = 12
print(a is not b)
x = 100
y = 200
z = 1
a = True
# a和x判定 然后和y判定 然后和z判定
print(a is not x is not y < z)
逻辑运算符
-
and
:与(逻辑与)
A and B表达式的结果:
如果A表达式的布尔判定为真 则B表达式的结果作为整个表达式的结果
如果A表达式的布尔判定为假 则A表达式的结果作为整个表达式的结果
如果A判定为假 B将不会执行
# and 与(逻辑与)
"""
A and B表达式的结果:
如果A表达式的布尔判定为真 则B表达式的结果作为整个表达式的结果
如果A表达式的布尔判定为假 则A表达式的结果作为整个表达式的结果
如果A判定为假 B将不会执行
"""
a = 99
b = 60
c = a > 99 and b > 90 # a>90 布尔表达式 True
print(c)
a = 59
b = 100
c = a > 99 and b > 90 # a>99 False 则b>90不执行
print(c)
a = 0
b = 100
c = a and b # a -> 变量取值表达式 隐式代码 bool(a)
print(c)
-
or
:或(逻辑或)
# or 或(逻辑或)
a = 10
b = 100
c = a or b
print(c)
-
not
:非(逻辑非)
# not 非(逻辑非)
print(not a) # 将a的布尔值取反
# !a 其他语言中把a取反