首页 代码 正文

Python特殊骚操作高级用法

2025.1.24 代码 501

变量

变量解包

变量解包(unpacking)是Python的一种特殊赋值操作,允许把一个可迭代对象(比如列表)的所有成员,一次性赋值给多个变量。

# 普通解包
a, b, c = [1, 2, 3]
print(a, b, c)  # 1 2 3

a, (b, c) = [1, [2, 3]]
print(a, b, c)  # 1 2 3

# 动态解包
a, *b, c = [1, 2, 3, 4]
print(a, b, c)  # 1 [2, 3] 4

# 也可在任何循环语句里使用
for a, b in [[1, 2], [3, 4]]:
    print(a, b)  # 1 2 3 4

单下划线变量名

单下划线变量名,常作为一个无意义的占位符出现在赋值语句中,是大家约定俗成的一种用法。如果想在解包赋值时忽略某些变量,就可以使用_作为变量名:

a, *_, b = [1, 2, 3, 4]
print(a, b)  # 1 4

在Python交互式命令行里,_变量还有一层特殊含义:默认保存上个表达式的返回值。

>>> 'abc'.upper()
'ABC'
>>> print(_)
ABC

数值与字符串

浮点数精度问题

Python提供的内置模块decimal,在做浮点数计算时不会损失任何精度。在使用Decimal的过程中,必须使用字符串来表示数字。

from decimal import Decimal

print(Decimal("0.1") + Decimal("0.2"))  # 0.3

布尔值其实也是数字

布尔类型其实是整型的子类型,在绝大多数情况下,True和False这两个布尔值可以直接当作1和0来使用。

numbers = [1, 2, 4, 5, 7]
count = sum(i % 2 == 0 for i in numbers)
print(count)  # 2 个偶数
  1. 转载请保留原文链接:Python特殊骚操作高级用法 https://aboss.top/post/441/
  2. 本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
  3. 本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
  4. 本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
  5. 联系方式(#替换成@):mail#aboss.top

评论

热门搜索