- 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 转化为布尔值
print(int(20.5))#20
print(float(20))#20.0
print(bin(3))#0b11
print(oct(20))#0o24
print(hex(29))#0x1d
print(complex(29))#(29+0j)
print(complex(10,3))#(10+3j)
特别说明
:
这里介绍一个函数:id(),用来查看变量的地址
x = 10
print(id(x))
不同的变量引入同一个数据,变量的地址是相同的。
但是相同的数值下,不同的数据类型是不同的。
我们可以看到x,y是不同的数字类型,但是在数学运算中是相等的,但是显示的地址不同。
三、数字的运算
1. 算术运算符
+
:加法-
:减法*
:乘法/
:除法%
:取模(取余数)**
:幂运算//
:整除(取整数部分)
除法 / 总是返回一个浮点数
整除// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。
不同类型的数混合运算时会将整数转换为浮点数:
print(10+20.3)#加法运算:30.3
print(17 / 3) # 整数除法返回浮点型:5.666666666666667
print(17 // 3) # 整数除法返回向下取整后的结果:5
print(17.0 // 3) # 整数除法返回向下取整后的结果:5.0
print(17 // 3.0) # 整数除法返回向下取整后的结果:5.0
print(17 % 3) # %操作符返回除法的余数:2
print(2\*\*3) #幂运算2的3次方: 8
2. 比较运算符
==
:等于!=
:不等于<
:小于>
:大于<=
:小于等于>=
:大于等于
比较运算符的运算结果为布尔值
print(10==10.0)#只比较值是否相等:True
print(3.14!=3.1415)#True
print(255>170)#True
print(255<170)#False
print(255>=255)#True
print(255<=255)#True
3. 逻辑运算符
and
:与(逻辑与)or
:或(逻辑或)not
:非(逻辑非)
A and B表达式的结果: 如果A表达式的布尔判定为真则B表达式的结果作为整个表达式的结果,如果A表达式的布尔判定为假则A表达式的结果作为整个表达式的结果
注意: 如果A判定为假 B将不会执行
or和not跟and一样
def fn():
print("执行了fn") # 打印
return 10
def fm():
print("执行了fm") # 打印
return 20
re = fn() and fm()
print(re) #20
def fn():
print("执行了fn") # 打印
return 0
def fm():
print("执行了fm") # 不打印
return 20
re = fn() and fm()
print(re) #0
另外
,not
常常和is
用来做身份判断,例如:a is not b
,用来判断a,b的身份是否相同。a和b的地址不同得到bool值True,地址相同会得到bool值False。
4. 位运算符
Python中的位运算符主要用于处理整数类型的二进制位操作。以下是Python中的6种主要位运算符:
&
:按位与|
:按位或^
:按位异或~
:按位取反<<
:左移位>>
:右移位
-
按位与(&):
- 表达式:
a & b
- 功能:对于每一位,如果a和b的相应位都是1,则结果位为1,否则为0。
- 表达式:
# 示例:计算两个二进制数的按位与
a = 0b1011 # 二进制表示的11
b = 0b1101 # 二进制表示的13
result_and = a & b # 计算两者之间的按位与
print(bin(result_and)) # 输出:0b1001 (十进制为9)
-
按位或(|):
- 表达式:
a | b
- 功能:对于每一位,只要a和b中至少有一位是1,则结果位为1,否则为0。
- 表达式:
# 示例:计算两个二进制数的按位或
a = 0b1011
b = 0b1101
result_or = a | b # 计算两者之间的按位或
print(bin(result_or)) # 输出:0b1111 (十进制为15)
-
按位异或(^):
- 表达式:
a ^ b
- 功能:对于每一位,如果a和b的相应位不同(一个为1,另一个为0),则结果位为1,否则为0。
- 表达式:
# 示例:计算两个二进制数的按位异或
a = 0b1011
b = 0b1101
result_xor = a ^ b # 计算两者之间的按位异或
print(bin(result_xor)) # 输出:0b110 (十进制为6)
-
按位取反(~):
- 表达式:
~a
- 功能:对操作数a的每一个二进制位进行取反,即将1变为0,0变为1。
- 表达式:
# 示例:计算一个二进制数的按位取反
a = 0b1011
result_not = ~a # 计算a的按位取反
print(bin(result_not)) # 输出:-0b1100
-
左移运算符(<<):
- 表达式:
a << b
- 功能:将a的二进制表示向左移动b位,左边移出的部分会被丢弃,右边空出的位置补零。
- 表达式:
# 示例:将一个二进制数向左移动两位
a = 0b1011
result_left_shift = a << 2 # 将a向左移动两位
print(bin(result_left_shift)) # 输出:0b101100 (十进制为44)
-
右移运算符(>>):
- 表达式:
a >> b
- 功能:将a的二进制表示向右移动b位,对于无符号整数,右边移出的部分会被丢弃,左边空出的位置补零(通常补0);对于有符号整数,右移时取决于具体实现,可能是算术右移(符号位扩展)或者逻辑右移(补0)。
- 表达式:
# 示例:将一个有符号二进制数向右移动一位
a = -0b1000 # 十进制为-8
result_right_shift = a >> 1 # 将a向右移动一位
print(bin(result_right_shift)) # 输出:-0b100 (十进制为-4)
# 对于无符号数的例子
unsigned_a = 0b1000
unsigned_result_right_shift = unsigned_a >> 1
print(bin(unsigned_result_right_shift)) # 输出:0b100 (十进制为4)
5. 赋值运算符
=
:赋值+=
:加法赋值-=
:减法赋值*=
:乘法赋值/=
:除法赋值%=
:取模赋值**=
:幂运算赋值//=
:整除赋值
注意:
没有 a++、 a-- 这种自增自减运算符;
x=100
x%=3
print(x)#1
总结
学习到了数字的类型、不同进制的数字如何表示、怎么进行数字类型的转换和数字的一些运算符等知识。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
f86381401c05e862fe4e9.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)