Python3.6、3.7、3.8新特性大集合,助你更新学习内存,高效进阶

本文详细介绍了Python3.6、3.7和3.8的新特性,包括Formatted字符串字面值、变量注释、异步生成器、新增内置函数breakpoint()、数据类、海象赋值表达式等,帮助开发者更好地理解和利用这些新特性进行高效编程。
摘要由CSDN通过智能技术生成

前言

很多人在学习了基本的Python语言知识后,就转入应用阶段了,没有对Python语言本身的新变化、新内容加以更新,甚至连已经发布了好几年的Python3.6的新特性都不甚了解,所以会感觉越来越吃力。

今天我们列举了Python3.6、3.7、3.8三个版本的新特性,希望能对大家更好的应用Python有所帮助。

一、Python3.6新特性

1、Formatted字符串字面值

Formatted字符串是带有’f’字符前缀的字符串,可以很方便的格式化字符串。

>>> name = "xiaoming"
>>> f"He name is {name}"
'He name is xiaoming'
>>> width = 10
>>> precision = 4
>>> value = decimal.Decimal("12.34567")
>>> f"result: {value:{width}.{precision}}"
'result:      12.35'

2、数字中支持下划线

数字中支持使用下划线,方便阅读,例如:

>>> 1_000_000_000_000_000
1000000000000000
>>> 0x_FF_FF_FF_FF
4294967295

字符串format方法也支持了’_’选项,当格式化为浮点数或整数时,以3位分隔,当格式化为’b’,’o’,’x’和’X’时,以4位分隔

>>> '{:_}'.format(10000000)
'10_000_000'
>>> '{:_b}'.format(10000000)
'1001_1000_1001_0110_1000_0000'

3、变量注释语法

变量注释没有给变量带来特殊的意义,只是为了方便IDE做类型检查。

>>> from typing import List,Dict
>>> primes: List[int] = []
>>> stats: Dict[str, int] = {}

上面代码中primes为变量名,List[int]为变量注释,用来说明primes列表是用来存放int类型数据的,但是这个不是强制性的,你使用append()方法添加一个str类型数据也是可以的,IDE会提示你添加的数据有误,但是运行时不会报错。

4、异步生成器

在Python3.5中,await和yield不能再同一个函数中使用,但是Python3.6已经取消了这个限制,可以在同一个函数体中使用了

async def ticker(delay, to):
    """Yield numbers from 0 to *to* every *delay* seconds."""
    for i in range(to):
        yield i
        await asyncio.sleep(delay)

5、异步列表推导

增加在list、set和dict的列表推导和生成表达式中使用async for。
如下面这段代码

result = []
async for i in aiter():
    if i % 2:
        result.append(i)

使用异步推导式之后,可以简写成

result = [i async for i in aiter() if i % 2]

现在也支持在所有的推导式中使用await表达式

result = [await fun() for fun in funcs]

6、新增加模块

标准库(The Standard Library)中增加了一个新的模块:secrets。该模块用来生成一些安全性更高的随机数,用于管理passwords, account authentication, security tokens, 以及related secrets等数据。

7、其他新特性

  • 新的 PYTHONMALLOC 环境变量允许开发者设置内存分配器,以及注册debug钩子等。
  • asyncio模块更加稳定、高效,并且不再是临时模块,其中的API也都是稳定版的了。
  • typing模块也有了一定改进,并且不再是临时模块。
  • datetime.strftime 和 date.strftime 开始支持ISO 8601的时间标识符%G, %u, %V。
  • hashlib 和 ssl 模块开始支持OpenSSL1.1.0。
  • hashlib模块开始支持新的hash算法,比如BLAKE2, SHA-3 和 SHAKE。
  • Windows上的 filesystem 和 console 默认编码改为UTF-8。
  • json模块中的 json.load() 和 json.loads() 函数开始支持 binary 类型输入。

二、Python3.7新特性

Python 3.7于2018年6月27日发布, 包含许多新特性和优化,增添了众多新的类,可用于数据处理、针对脚本编译和垃圾收集的优化以及更快的异步I/O,主要如下:

  • 用类处理数据时减少样板代码的数据类。
  • 一处可能无法向后兼容的变更涉及处理生成器中的异常。
  • 面向解释器的“开发模式”。
  • 具有纳秒分辨率的时间对象。
  • 环境中默认使用UTF-8编码的UTF-8模式。
  • 触发调试器的一个新的内置函数。

1、新增内置函数breakpoint()

使用该内置函数,相当于通过代码的方式设置了断点

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Ubuntu 18.04上将Python 3.6更新Python 3.8的方法可以通过以下步骤完成: 1.首先,确认系统中已经安装了Python 3.8的版本。你可以通过运行以下命令来检查: ``` $ python3.8 --version ``` 如果没有安装Python 3.8,请按照安装步骤进行安装。可以参考引用中的链接获取更多信息。 2.接下来,使用`update-alternatives`命令将Python 3的可选执行路径添加到系统中。你可以运行以下命令: ``` $ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 ``` 这将在可选执行路径中添加Python 3.8的版本。 3.然后,你可以使用`update-alternatives`命令选择要使用的Python版本。你可以运行以下命令: ``` $ sudo update-alternatives --config python3 ``` 这将列出可用的Python版本,并要求你选择要使用的版本。你可以根据提示选择Python 3.8的版本。 现在,你的Ubuntu 18.04系统中的Python 3已经更新Python 3.8版本了。你可以使用以下命令来验证: ``` $ python3 --version ``` 它应该显示Python 3.8的版本号。 请注意,这只是一种将Python 3.6更新Python 3.8的方法之一,在不同的系统和环境中可能会有些许不同。你可以参考引用中的链接获取更多关于在Ubuntu上更新Python版本的详细教程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ubuntu18.04升级python3.6到python3.7](https://blog.csdn.net/qq_25310669/article/details/120868229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值