文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

新手必看:Python 3.8六大新功能

2024-12-24 20:06

关注

2019年,随着数据科学的兴起,Python成为了最热门的程序语言。 尽管如此,面对浩如烟海的知识,应接不暇也是正常的。语法不断变化,每次Python更新,都会添加许多新的表达。有很多功能小芯只恨自己知道得太晚了。 如果读者也感同身受,这里有一个坏消息:近期,Python 3.8已经发布。 不过别担心,小芯已经为你总结好了Python 3.8中每个新手都应该掌握的6大新功能。

[[313648]]

1. 新模块:读取元数据历

使用新的importlib.metadata模块可以读取第三方包的元数据。可以在脚本包中获取版本号。

2. 字典反转:排序

现在,字典可以用resersed( )在反转插入排序中实现迭代了。

Continue – finally

由于Python的实现问题,以前在Finally子句中添加continue语句是不合法的。现在这一问题已不复存在。

  1. for i inrange(2): 
  2.     try: 
  3.         print(i) 
  4.     finally: 
  5.         print('A sentence.') 
  6.         continue 
  7.         print('This never shows.') 
  8. # Python <= 3.7 
  9. >>SyntaxError: 'continue'not supported inside 'finally' clause 
  10. # Python 3.8 
  11. >>
  12.    A sentence. 
  13.    1 
  14.    A sentence. 

4. 指示参数类型:让代码更强大

Python函数只接受两种参数。

在下例中,参数a和参数b的值可由位置参数或关键字参数确定,非常灵活。

  1. def my_func(a, b=1): 
  2.     return a+bmy_func(5,2)     # both positional arguments 
  3. my_func(a=5,b=2) # both keyword arguments 

新版本的Python用语法/和*作区分,提供了指定接受位置参数或关键字参数的方法。注意:语法*并不是在Python 3.8中才出现。

在下面的例子中,开头的两个参数a和b只接受位置参数,中间的c和d可接受位置参数或关键字参数,最后的e和f只接受关键字参数。

  1. defmy_func(a, b, /, c, d, *, e, f): 
  2.     return a+b+c+d+e+f 
  3. my_func(1,2,3,4,5,6)          # invalid  as e and f are keyword-only 
  4. my_func(a=1,b=2,3,4,e=5,f=6) # invalid as a and b are position-only 
  5. my_func(1,2,c=3,4,e=5,f=6)    # returns  21 
  6. my_unc(1,2,c=3,d=4,e=5,f=6)  # returns 21 

为什么要牺牲灵活性呢?如果参数名称随意且无用,就应该排除关键字参数。如果预计函数中的参数名可能会发生变化,指定参数类型能避免代码崩溃,也能让代码更加强大。

5. 赋值表达式:提升代码可读性

赋值表达式,又称海象运算符,是以:=为语法形式的新运算符,它能把较大表达式中的某部分赋值给变量。这无疑是Python 3.8中讨论最多的新功能了。

来看个例子: 赋值表达式b := a**2 将a的平方,也就是36,赋值给b,然后检查b的值是否大于0。

  1. a =6 
  2. # The following statement 
  3. # assigns the value a ** 2 to  variable b, 
  4. # and then check if b > 0 is  true 
  5. if (b :a **2) >0: 
  6.     print(f'The  square of {a} is {b}.') # The square of 6 is 36. 

有时赋值表达式能让代码更加简洁可读。但是,请注意不要滥用赋值表达式,因为在某些情况下它会让代码更加难懂。

  1. # DON'T DO THIS! 
  2. a = 5 
  3. d = [b :a+1, a :b-1, a :a*2] 

其他(老)程序语言中也有赋值表达式,希望改用Python的程序员们能(多)用这一新功能。在赋值表达式泛滥之前赶快掌握它吧。

6. F字符串2.0: 调试(debug)的利器

Python f字符串改变了游戏规则。F字符串是格式化字符串的语法,简洁且易读。利用语法f'{expr}',在引号前加上f,将表达式用大括号括住,就能够将表达式插入字符串。

Python更新之后,等于号“=”能够在f字符串f'{expr=}'语法中作为格式限定符使用。输出的字符串为变量名=变量值,如下所示:

  1. # DON'T DO THIS! 
  2. a = 5 
  3. d = [b :a+1, a :b-1, a :a*2] 

出于编制文件或调试 (Debug) 的需要,常需要指明变量值。F字符串使得调试(debug)易如反掌。

当然,在投身Python 3.8编程之前,你需要掌握Python基本功能(必不可少)。

这就是Python的6大新功能,每个Python新手都能从中获益。

来源:读芯术内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯