第十讲 python中的进制-类型转换-四舍五入-增强赋值运算符

本文详细介绍了Python中的进制表示,包括二进制、八进制和十六进制,以及不同进制间的转换。此外,还讲解了类型转换,如int()、float()、str()和bool()的用法,以及列表和元组的转换。在四舍五入部分,讨论了round()函数和decimal模块在处理精度问题上的差异。最后,提到了增强赋值运算符的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 进制

2. 各个进制之间的转换

2. 类型转换

2.1 int()

2.2 float()

2.3 str()

2.4 bool()

2.5 list()

2.6 tuple()

3. 四舍五入

3.1 round()

3.2 decimal模块

4. 增强赋值运算符


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是那个同伟伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值