2020-01-30 12:10:38

全文共2372字,预计学习时长7分钟

来源:Pexels

IT业日新月异,落后的Python 2将在2020年逐渐被淘汰。

2019年,随着数据科学的兴起,Python成为了最热门的程序语言。

尽管如此,面对浩如烟海的知识,应接不暇也是正常的。语法不断变化,每次Python更新,都会添加许多新的表达。有很多功能小芯只恨自己知道得太晚了。

如果读者也感同身受,这里有一个坏消息:近期,Python 3.8已经发布。

不过别担心,小芯已经为你总结好了Python 3.8中每个新手都应该掌握的6大新功能。

来源:Pexels

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

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

2. 字典反转:排序

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

3. 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. >>0
  12. A sentence.
  13. 1
  14. A sentence.

来源:Pexels

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的程序员们能(多)用这一新功能。在赋值表达式泛滥之前赶快掌握它吧。

来源:Pexels

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

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

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

  1. pi =3# I studied Engineering
  2. print(f'π equals {pi}.') # π equals 3.
  3. print(f'{pi=}') # pi=3
  4. # take it or leave it

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

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

来源:Pexels

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

新手必看:Python 3.8六大新功能相关推荐

  1. python初学者必背函数_新手必看python vlog 1: 函数

    关注本慕没烦恼,python新手瞧一瞧. 从今天开始,本慕开始为新手们带来福利啦!!祝各位python新手们事业有成!!? 今天,我们从最基础的开始讲. 首先大家安装PyCharm了吧!!解释器安装好 ...

  2. Spark的坑--Spark新手必看--Python Spark必读,耗费了我近三周的时间

    from pyspark import SparkContext, SparkConf import os from tqdm import tqdmfrom utils2 import conver ...

  3. 新手必看——Python代码运行的方法都在这里了

    Python代码写好了怎么运行?相信问这样问题的朋友一定是刚刚入门Python的初学者.本文就来为大家详细讲讲如何运行Python代码. 一般来讲,运行Python代码的方式有两种,一是在Python ...

  4. 【数据大神必看】微信又添新功能!这个微信群可以学英语,而且全程免费

    最近不少网友发现,在微信群里居然可以学英语!而且全程免费! 今天分享的是一个你绝对不能错过的微信群. 群里面会有免费的英语直播课,还有专业的英语老师辅导学习.而且这个老师曾为印度总统.澳大利亚副总理等 ...

  5. python新手入门代码-新手必看:手把手教你入门 Python

    原标题:新手必看:手把手教你入门 Python 本文为 AI 研习社编译的技术博客,原标题 : Learning Python: From Zero to Hero 翻译 |永恒如新的日常校对 | 酱 ...

  6. python中是干嘛的-python是做什么的,新手必看哦!

    原标题:python是做什么的,新手必看哦! ​python , 是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,Python 已经成为继JAVA,C 之后的的第三大语言.特点:简单易学 ...

  7. python的难点_初学python的操作难点总结(新手必看篇)

    如下所示: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的目录 直接 dir 3 想在一个盘下进去一个文件夹,用cd空格目标文件 cd p 4 写文件的第一个字母 ...

  8. python新手入门总结_初学python的操作难点总结(新手必看篇)

    如下所示: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的目录 直接 dir 3 想在一个盘下进去一个文件夹,用cd空格目标文件 cd p 4 写文件的第一个字母 ...

  9. python软件如何安装方法_【新手必看】Python软件下载及安装教程

    原标题:[新手必看]Python软件下载及安装教程 Python下载:免费开源 官网地址:https://www.python.org/downloads/ 下载对应版本Python:python-3 ...

最新文章

  1. java注解的执行顺序_深入理解Spring的@Order注解和Ordered接口
  2. 路由协议有类和无类的区别
  3. Python3 AttributeError: module 'cv2' has no attribute 'SIFT'
  4. [转]C#中的委托和事件(续)
  5. CDN服务品质协议1
  6. web渗透漏洞实例讲解视频课程
  7. Dapr + .NET 实战(六)绑定
  8. linux分区从1开始,Linux 学习笔记 1 使用最小的系统,从分区安装系统开始
  9. web.xml(8)_jsp-config
  10. android studio证件照代码,Android 修图(换证件照背景,污点修复)
  11. php 求两个数组的差集应该注意的事情
  12. 微课|玩转Python轻松过二级:第3章课后习题解答6
  13. 软件配置管理(CN) Google讨论组
  14. Oracle静默安装
  15. 转 常用C#正则表达式收集。
  16. document.body、document.documentElement和window获取视窗大小的差别
  17. 2020 博客之星评选【票数排行榜】每日更新
  18. Pyinstaller打包
  19. 【新手向】Python做一个简易登录注册GUI界面(无事件绑定)
  20. Spring Cloud入门-Admin服务监控中心(Hoxton版本),java高级编程技术

热门文章

  1. 在 Windows 10 上安装 WSL | Microsoft Docs 转
  2. box-cox数据规整转换
  3. tensorflow eager调试模式关键导入如下两行便于debug
  4. Sebastian Ruder 发文:Benchmark 的挑战与机遇!
  5. 有一说一,AI 到底会不会伤害人类?
  6. windows PHPStudy Apache 配置支持HTTPS
  7. Python 3.10的几个好用的新特性
  8. 一文盘点2019年AI领域都发生了什么
  9. 独家|深度学习训练和推理之间有什么差异?
  10. 详解AI Lab 21篇CVPR 2018论文(附论文)