作者:某某白米饭
来源:Python 技术
python 3.10 已经在 10月 4 号发布了,这次更新了错误语法提示对 python 新手更加友好。好几个新的特性非常的有用,一起来看看吧。
在调试代码的时候可以精确定位到错误语法的那行,而不是提示 SyntaxError 的行。
# 1 expected = {9: 1, 18: 2, 19: 2, 27: 3, some_other_code = foo() # 2 foo(x, z for z in range(10), t, w) # 3 try: build_dyson_sphere() except NotEnoughScienceError, NotEnoughResourcesError: # 4 f"Black holes {*all_black_holes} and revelations" # 5 schwarzschild_black_hole = None schwarschild_black_hole
3.9 提示的是
# 1 some_other_code = foo() ^ SyntaxError: invalid syntax # 2 foo(x, z for z in range(10), t, w) ^ SyntaxError: Generator expression must be parenthesized # 3 except NotEnoughScienceError, NotEnoughResourcesError: ^ SyntaxError: invalid syntax # 4 (*all_black_holes) ^ SyntaxError: f-string: can't use starred expression here # 5 schwarschild_black_hole NameError: name 'schwarschild_black_hole' is not defined
3.10 提示的是
# 1 expected = {9: 1, 18: 2, 19: 2, 27: 3, ^ SyntaxError: '{' was never closed # 2 foo(x, z for z in range(10), t, w) ^^^^^^^^^^^^^^^^^^^^ SyntaxError: Generator expression must be parenthesized # 3 except NotEnoughScienceError, NotEnoughResourcesError: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SyntaxError: multiple exception types must be parenthesized # 4 (*all_black_holes) ^^^^^^^^^^^^^^^^ SyntaxError: f-string: cannot use starred expression here # 5 schwarschild_black_hole NameError: name 'schwarschild_black_hole' is not defined. Did you mean: 'schwarzschild_black_hole'?
相当于其他语言的 switch...case
match subject:
case <pattern_1>: <action_1> case <pattern_2>: <action_2> case <pattern_3>: <action_3> case _: <action_wildcard>
关键字 match 后跟变量名。 如果匹配,则将执行 case 块内的语句, 没有匹配,则执行 case _ 块内的语句。
# 1 for i in [1,2,3,4,5,6,7]:
match i: case 1: print('周一') case 2: print('周二') case 3: print('周三') case 4: print('周四') case 5: print('周五') case _: print('放假了')
结果:
# 1 周一
周二
周三
周四
周五
放假了
放假了
再来一个 tuple 类型的
# 2 point = (1, 2, 3)
match point:
case (0, 0, _):
print("原点")
case (0, y, 0):
print(f"Y={y}")
case (x, 0, 0):
print(f"X={x}")
case (x, y, z):
print(f"X={x}, Y={y}, Z={z}")
case _: raise ValueError("Not a point")
结果:
# 2 X=1, Y=2, Z=3
可以使用 tuple 类型,当然也可以使用 list 类型,类似于:points = [(1, 3),(1, 2)]
以 X|Y 的形式引入了新的类型联合运算符。
def square(number: int|float): return number ** 2 print(square(4))
print(square(4.4))
结果:
16 19.360000000000003
也可以用作 isinstance():一个对象是否是一个已知的类型 和 issubclass():判断参数 class 是否是类型参数 classinfo 的子类 的第二个参数。
isinstance("5",int|str)
isinstance("xxxx",int|str)
结果:
True True
函数 zip() 增加 strict 参数,如果设置 strict = True,而传输的参数的长度不相等将会抛出异常。
x = [1,2,3,4,5] y = [1,2,3] z = zip(x,y, strict=True) print(list(z))
结果:
ValueError: zip() argument 2 is shorter than argument 1
dict.items()、dict.keys()、dict.values() 分别增加了 mapping 属性
x = {'name': '张三', 'age': 14} keys = x.keys() values = x.values()
items = x.items() print(keys.mapping) print(values.mapping) print(items.mapping)
python 3.10 更新的最有用的就是错误提示了,再也不会看到提示一团迷糊,定位更加的精确,match...case 终于来了。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-02最近我发现一个绝招,用DeepSeek AI处理Excel数据简直太爽了!处理速度嘎嘎快! 平常一整天的表格处理工作,现在只要三步就能搞 ...
2025-04-01你是否被统计学复杂的理论和晦涩的公式劝退过?别担心,“山有木兮:统计学极简入门(Python)” 将为你一一化解这些难题。课程 ...
2025-03-31在电商、零售、甚至内容付费业务中,你真的了解你的客户吗? 有些客户下了一两次单就消失了,有些人每个月都回购,有些人曾经是 ...
2025-03-31在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的需求持续飙升。世界经济论坛发布的《未来就业报告》, ...
2025-03-28你有没有遇到过这样的情况?流量进来了,转化率却不高,辛辛苦苦拉来的用户,最后大部分都悄无声息地离开了,这时候漏斗分析就非 ...
2025-03-27