目录
1. 进制
python中,除了十进制,还有其他三种进制
- 0b或0B,二进制(使用0和1表示数字), 0 1
- 0o或0O,八进制(使用0-7的数字表示) 0 1 2 3 4 5 6 7
- 0x或0X,十六进制(使用0-9及A-F(大小写均可)的字符表示) 0 1 2 3 4 5 6 7 8 9 a b c d e f
2. 各个进制之间的转换
参考我之前的博客
Python中各进制间的转换_pythond的二进制公式-优快云博客
2. 类型转换
2.1 int()
- 浮点数直接舍去小数部分。如: int(8.8) = 8
布尔值 True 转 为 1 ,False 转为 0 。 如:int(True)结果是 1
整型的字符串可以转换为对应的整型,但如果字符串中有浮点数或者字母等不适整型的则会报错
2.2 float()
- 将一个对象转换为浮点数类型。
- 如果对象是字符串,则必须是表示浮点数的字符串,否则会引发ValueError异常。
- 如果对象是整数,则会自动将其转换为浮点数。
- 如果对象是布尔值,则True被转换为1.0,False被转换为0.0。
- 如果对象是其他任何类型,则会尝试调用对象的__float__()方法来获取浮点数值
2.3 str()
- 将一个对象转换为字符串类型。
- 如果对象已经是字符串,则不会进行任何操作。
- 如果对象是整数或浮点数,则会将其转换为相应的字符串。
- 如果对象是布尔值,则True被转换为字符串"True",False被转换为字符串"False"。
- 如果对象是其他任何类型,则会尝试调用对象的__str__()方法来获取字符串值。
2.4 bool()
- 将一个对象转换为布尔类型。
- 如果对象是数字类型(包括整数和浮点数),则0被视为False,非零值被视为True。
- 如果对象是空序列(如空字符串、空列表、空元组等),则被视为False。
- 如果对象是非空序列,则被视为True。如果对象是None,则被视为False。
- 如果对象是其他任何类型,则会尝试调用对象的__bool__()或__len__()方法来获取布尔值。
num = 0 is_true = bool(num) print(is_true) # 输出:False non_zero_num = 42 is_true = bool(non_zero_num) print(is_true) # 输出:True empty_str = "" is_true = bool(empty_str) print(is_true) # 输出:False non_empty_str = "Hello" is_true = bool(non_empty_str) print(is_true) # 输出:True
2.5 list()
- 将一个可迭代对象转换为列表类型。可
- 迭代对象包括字符串、列表、元组、集合、字典等。
- 该函数会遍历可迭代对象,并将其中的元素添加到新列表中。
my_tuple = (1, 2, 3) my_list = list(my_tuple) print(my_list) # 输出:[1, 2, 3] my_str = "Hello" my_list = list(my_str) print(my_list) # 输出:['H', 'e', 'l', 'l', 'o']
2.6 tuple()
- 将一个可迭代对象转换为元组类型。
- 可迭代对象包括字符串、列表、元组、集合、字典等。
- 该函数会遍历可迭代对象,并将其中的元素添加到新元组中。
my_list = [1, 2, 3] my_tuple = tuple(my_list) print(my_tuple) # 输出:(1, 2, 3) my_str = "Hello" my_tuple = tuple(my_str) print(my_tuple) # 输出:('H', 'e', 'l', 'l', 'o')
3. 四舍五入
3.1 round()
round(value, num) 可以返回四舍五入的值。但不会改变原有值,而是产生新的值
num为保留几位小数,不写num则代表不保留小数部分
3.2 decimal模块
需要注意的是,round()函数的四舍五入规则可能会导致精度问题。例如,对于像2.675这样的数字,它保留2位小数应该是2.68,但是如果使用round(2.675, 2)进行四舍五入,则会得到2.67。这是因为2.675的二进制表示不是精确的,而是一个无限循环的小数。
import decimal decimal.getcontext().prec = 2 # 设置精度为2位小数 num1 = decimal.Decimal('2.675') print(round(num1, 2)) # 输出:2.68 num2 = decimal.Decimal('3.14159') print(round(num2, 2)) # 输出:3.14
4. 增强赋值运算符
运算符 + 、- 、* 、// 、% 、/ 、 ** 和赋值符 = 结合可以构成 “增强赋值运算符”
运算符
例子
等价
+=
a += 2
a = a + 2
-=
a -= 2
a = a-2
*=
a *= 2
a = a * 2
/=
a /= 2
a = a / 2
//=
a //= 2
a = a//2
**=
a **= 2
a = a**2
%=
a %= 2
a = a % 2
第十讲 python中的进制-类型转换-四舍五入-增强赋值运算符
于 2024-05-15 14:06:26 首次发布