Python3.10和Python3.9版本之间的差异介绍

目录
  • 介绍:
  • 了解 Python 及其用例:
  • 分析 Python 3.9 V/s Python 3.10 的差异
  • Python 3.9:
    • IANA 时区数据库
    • 合并和更新字典的函数
    • 删除前缀和后缀
    • 在 Python 3.9 中对内置泛型类型使用类型提示
  • Python 3.10:
    • 改进的语法错误消息
    • 更好的类型提示
    • 改进的上下文管理器

介绍:

在过去的几十年里,Python 在编程或脚本语言领域为自己创造了一个名字。python 受到高度青睐的主要原因是其极端的用户友好性。Python 还用于处理复杂的程序或编码挑战。

机器学习 (ML)、人工智能 (AI) 和数据科学等新兴领域也满足了学习这种语言的高需求。与 Java、C# 和其他语言等传统语言相比,Python 是一种强大的编程语言,迅速成为开发人员、数据科学家和 AI/ML 爱好者的最爱。

Python 作为一种编程语言,有许多用例吸引了 IT 行业的学习者和专家。在基本层面上,Python 可以用作编程语言来练习数据结构和算法或开发简单的项目或游戏。

Python 作为一种语言的多功能性使其用户可以轻松扩展他们的项目并创建网站、软件或预测模型。自动化正在接管 IT 行业的大部分领域,而 Python 作为用于自动化数据分析或数据科学任务的首选语言处于领先地位。

除此之外,Python 拥有大量的库和强大的程序员社区,他们不断为 Python 作为一种语言增加更多价值。

了解 Python 及其用例:

初学者被 Python 吸引的众多原因之一是它的用户友好性。Python 摒弃了令人生畏的分号,并使用简单的缩进结构作为其语法。Python 还发现了一个用例作为需要可编程接口的应用程序的扩展。

Python 的其他一些好处包括其最令人垂涎的功能,即它的库。Python 库是一种巨大的资源,可用于许多关键的代码编写,例如:

  1. 基于正则表达式的代码
  2. 字符串处理
  3. 互联网协议,如 HTTP、FTP、SMTP、XML-RPC、POP、IMAP
  4. 统一码
  5. 文件系统和计算文件之间的差异
  6. CGI编程
  7. 数学建模
  8. 数据库查询
  9. 数据分析
  10. 数据可视化
  11. 自动化代码

所有这些功能都可以在许多 Unix、Linux、macOS 和 Windows 系统上执行。

分析 Python 3.9 V/s Python 3.10 的差异

多年来,Python 进行了大量升级,并且在新版本中添加了许多功能。在这里,让我们关注 Python 添加的两个最新版本。探索更新的功能可以帮助您顺利使用它,当然,还可以找到使用更新库的更智能的工作方式。

下面所附的所有代码仅用于教育目的,并且取自与新版本(例如 Python 3.9 和 Python 3.10)一起发布的原始 Python 文档

Python 3.9:

IANA 时区数据库

在 Python 3.9 中创建了一个名为 zoneinfo 的新模块。通过此模块,您可以访问 IANA 或互联网号码分配机构时区数据库。默认情况下,此模块使用系统的本地时区数据。

代码 :

print(datetime(2021, 7, 2, 12, 0).astimezone())
print(datetime(2021, 7, 2, 12, 0).astimezone().strftime("%Y-%m-%d %H:%M:%S %Z"))
print(datetime(2021, 7, 2, 12, 0).astimezone(timezone.utc))

输出 :

2020-07-2 12:00:00-05:00
2020-07-2 12:00:00 EST
2020-07-2 17:00:00+00:00

合并和更新字典的函数

Python 3.9 增加了另一个很酷的功能,引起了很多关注。Python 3.9 现在可以使用运算符合并或更新字典。新的运算符 ie ( | ) 和 ( |= ) 已添加到 Python 3.9 内置 dict 类中。

您可以使用类似于下面标记的代码访问这些运算符以合并或更新字典。

代码 :

>>> a = {‘v': 1, 'art': 2, 'py': 3}
>>> b = {'v': 'd', 'topic': 'python3.9'}

合并代码:

>>> a | b
{'art': 2, 'py': 3, 'v':'d',  'topic': 'python3.9'}
>>> b | a
{'v': 1,'art': 2, 'py': 3, 'topic':'python3.9' }

更新代码:

>>> a |= b
>>> a
{'art': 2, 'py': 3,'v':'d'}

删除前缀和后缀

使用 Python 3.9 中添加的新功能可以更轻松地解决字符串处理问题。下面标记的代码用于从示例字符串中去除前缀和后缀。以下示例代码中使用的新方法是:

removeprefix() - 这个方法根据它的功能恰当地命名,它是去除给定样本字符串中存在的前缀。removesuffix() – 此方法从传递给它的示例字符串中删除现有的后缀。

由于程序员对其缺陷性质的负面评价,创建了这些新方法来替换旧的 strip() 方法。下面标记的是一个示例代码,可以帮助您了解这两种新方法的实现。

代码 :

print("海拥在外面玩".removeprefix("海拥"))

输出:

‘在外面玩'

在 Python 3.9 中对内置泛型类型使用类型提示

Python 3.9 版本启用了对所有标准集合的通用语法的支持功能,这些功能目前在输入模块中可用。泛型类型通常被定义为一个容器,例如一个列表。它是一种可以轻松参数化的类型。通常,泛型类型具有一种或多种类型的参数,而参数化泛型是具有容器元素的泛型数据类型的特定实例,例如,列表或字典内置集合类型是支持的各种类型,而不是专门支持的类型使用 Typing.Dict 或 typing.List

代码 :

def print_value(input: str): # 指定传递的值将是字符串类型

通过使用下面的方式,我们将能够找到以下输入是否为字符串

Python 3.10:

使用结构模式进行匹配

全新的 Python 3.10 中引入了一项称为结构模式匹配的新功能。此匹配过程与相同的匹配案例逻辑一起运行,但它还与比较对象进行比较以跟踪给定模式。

Python 3.9 的代码:

http_code = "419"
if http_code == "200":
    print("OK")
elif http_code == "404":
    print("Not Found Here")
elif http_code == "419":
    print("Value Found")
else:
    print("Code not found")

Python 3.10 的代码:

http_code = "419"
match http_code:
    case "200":
        print("Hi")
    case "404":
        print("Not Found")
    case "419":
        print("You Found Me")
    case _:     #Default Case
        print("Code not found")

改进的语法错误消息

大量程序员在错误匹配或调试代码方面面临困难。Python 3.10 添加了一个非常用户友好的特性,称为关联建议,它带有语法错误消息标记。这有助于您快速找到其中存在错误或错误的代码的修复程序。

代码 :

named_car = 77
print(new_car)

输出 :

NameError: name 'new_car' is not defined. Did you mean: named_car?

更好的类型提示

从 Python 3.9 升级,我们可以不使用 union 关键字而只使用 OR 符号来分配参数的多种输入类型。为同一个变量定义多个输入类型是一种更简单的方法

Python 3.9 的代码:

def add(a: Union[int, float], b: Union[int, float]):

Python 3.10 的代码:

def add(a: int | float, b: int | float):

改进的上下文管理器

上下文管理器有助于处理文件等资源。您现在可以在单个块中使用多个上下文。这将大大增强您的代码,因为您不再需要多个块或语句。

以前的语法:

with open('output.log', 'rw') 作为 fout:
    fout.write('hello')

最新语法:

with (open('output.log', 'w') as fout, open('input.csv') as fin):
    fout.write(fin.read())

到此这篇关于Python3.10和Python3.9版本之间的差异介绍的文章就介绍到这了,更多相关Python3.10和Python3.9版本差异内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 一文解决Python切换版本问题

    目录 概述 其他平台 1.安装Homebrew 2.通过brew命令安装pyenv 3.使用pyenv安装Python3.7.5 4.解决Python用pip命令安装速度慢,改用国内镜像 5.切换版本无效,试试bash 参考 概述 由于mac默认都会安装python2.x,这给我们python开发造成不便,我们经常要用到python3.x的版本来进行测试.开发,比如开源项目有2.x和3.x的,我们就必须来回切换使用不同版本python进行测试.开发,非常不方便,所以我们要在电脑安装pyenv来自

  • python不同版本的_new_不同点总结

    我们都知道python的版本不同,在使用的时候就有所区别.鉴于我们推荐小伙伴们选择python3版本,所以这方面的区别了解的不是很多.就拿_new_来说,在python2和3中的写法是不一样的,之前有接触_new_的小伙伴想必没有注意到这个问题.接下来讲讲new的基本用法,然后就python不同版本中_new_的区别带来详解. new方法接受的参数虽然也是和init一样,但init是在类实例创建之后调用,而 new方法正是创建这个类实例的方法. class Person(object): "&q

  • Python双版本计算器详解

    有框计算器 这个计算器我们用到了Python自带的Tkinter库 # 导入tkinter库 import tkinter 我们要对窗口进行一些基本操作 # 获取一个窗口 window = tkinter.Tk() # 设置标题 window.title('计算器') # 设置窗口大小 window.geometry('200x200') 接着用函数定义一个输入方法 输入方法 # 输入方法 def add(n): # 获取到n1文本框的值 n1 = inp.get() # 清空文本框 inp.d

  • python 如何查看pytorch版本

    看代码吧~ import torch print(torch.__version__) 补充:pytorch不同版本安装以及版本查看 一:基于conda安装 conda create --name pytorch_learn python=3.6.7#创建一个名为pytorch_learn的环境 source activate pytorch_learn #进入环境 conda install pytorch=0.3.1 cuda80 -c soumith #安装pytorch0.3.1+ cu

  • Python3.10和Python3.9版本之间的差异介绍

    目录 介绍: 了解 Python 及其用例: 分析 Python 3.9 V/s Python 3.10 的差异 Python 3.9: IANA 时区数据库 合并和更新字典的函数 删除前缀和后缀 在 Python 3.9 中对内置泛型类型使用类型提示 Python 3.10: 改进的语法错误消息 更好的类型提示 改进的上下文管理器 介绍: 在过去的几十年里,Python 在编程或脚本语言领域为自己创造了一个名字.python 受到高度青睐的主要原因是其极端的用户友好性.Python 还用于处理

  • 浅谈Python3.10 和 Python3.9 之间的差异

    目录 介绍: 了解 Python 及其用例: 分析 Python 3.9 V/s Python 3.10 的差异 Python 3.9: IANA 时区数据库 合并和更新字典的函数 删除前缀和后缀 在 Python 3.9 中对内置泛型类型使用类型提示 Python 3.10: 改进的语法错误消息 更好的类型提示 介绍: 在过去的几十年里,Python 在编程或脚本语言领域为自己创造了一个名字.python 受到高度青睐的主要原因是其极端的用户友好性.Python 还用于处理复杂的程序或编码挑战

  • 分享下mysql各个主要版本之间的差异

    一.各版本的常用命令差异 show innodb status\G mysql-5.1 show engines innodb status\G mysql-5.5 关于grant授权 mysql-5.5 的 user@'%'不包含localhost 二.MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要区别 mysql-server-4.1 增加了子查询的支持,字符集增加UTF-8,GROUP BY语句增加了ROLLUP,mysql.user表采用了更好的加密算法,innodb开始

  • Python3.0与2.X版本的区别实例分析

    本文通过列举出一些常见的实例来分析Python3.0与2.X版本的区别,是作者经验的总结,对于Python程序设计人员来说有不错的参考价值.具体如下: 做为一个前端开发的码农,最近通过阅读最新版的<A byte of Python>并与老版本的<A byte of Python>做对比后,发现Python3.0在某些地方还是有些改变的.之后再查阅官方网站的文档,总结出一下区别: 1. 如果你下载的是最新版的Python,就会发现所有书中的Hello World例子将不再正确. Py

  • 示例详解Python3 or Python2 两者之间的差异

    每门编程语言在发布更新之后,主要版本之间都会发生很大的变化. 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化. 本教程主要介绍内容: 表达式 Print 选项 Unequal 操作 Range 自动迁移 性能问题 主要的内部事务更改 1.表达式 在 Python 2 中为获得计算表达式,你会键入: 但在 Python 3 中,你会键入: 因此,无论我们输入什么,值都会分配给 2 和 3 中的变量 x.当在 Py

  • 10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)

    我简单的绘制了一下排序算法的分类,蓝色字体的排序算法是我们用python3实现的,也是比较常用的排序算法. Python3常用排序算法 1.Python3冒泡排序--交换类排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法. 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来. 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端. 作为最简单的排序算法

  • 解决Python3.7.0 SSL低版本导致Pip无法使用问题

    终于下决心把python从2.7升到了3.7.懒人安装当然使用Anaconda. 安装成功,编译成功.但是用pip 安装包的时候提示: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 原因是python3.7为了安全性考虑,要求使用openssl 1.0.2之后的版本.但是自带的openssl,版本是1.0.1. 解决办法: 重装一下

  • Python3.10的一些新特性原理分析

    Python 3.10.0a2 版本已经于 2020-11-04 发布,因此我们可以窥见 Python 3.10 的一些新特性.这些新特性很可能会改变未来的 Python 生态系统,使其朝着更明确,更易读的方向发展,同时保持我们熟知和喜欢的易用性. PEP 602 1.类型注释的进一步扩展 3.9 版对 Python 中的类型提示和注释进行了大幅度修改和清理,类型提示这似乎是一种持续的趋势,在 3.10 中得到进一步扩展,目的很明显,是为了更好的可读性,无需看代码即可得知变量和函数返回值的类型.

  • python3 自动打印出最新版本执行的mysql2redis实例

    我就废话不多说了,直接看代码吧! #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 输出 mysql2redis 命令 # __author__ = caozhi # create_time 2018-11-12,update_time 2019-12-12 # version = 2.0 import os import re import sys import time import fcntl import subprocess import

  • python3中_from...import...与import ...之间的区别详解(包/模块)

    目录 前言 1.import ... 2.from ... import ... 3.引用也有区别 4.引用优化 总结 前言 [以下说明以tkinter模块为例进行说明] [下图为安装后在python解释器路径下lib(库)文件夹下的tkinter文件夹下的内容] 1.import ... [语法]import tkinter [说明] import引入的是包中根目录下__init__.py中的全部内容,包括其中的类.类内部的公有属性.类内部的公有方法.方法等内容.(该种方式导入包的本质就是执行

随机推荐