zoukankan      html  css  js  c++  java
  • Python 3.8 新功能【新手必学】

     
     Python 3.8 是 Python 编程语言的最新主要版本, 它包含许多新功能和优化。
    Python
     

    Python 3.8

    Python 3.8 的一些新功能包括:

    1. 海象运算符

    Python
     

    PS:很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,都会解决哦!

    在这个新版本中,我们有一种新的赋值运算符,称为 Walrus 运算符 := 。该运算符的优点是可以在一行中设置和返回变量。例如:

    Code:
    sample_data = [
    {“id”: 1, “name”: “Srijan”},
    {“id”: 2, “name”: “Abhishek”},
    {“id”: 3, “name”: “Dilip”},
    {“id”: 4, “name”: “Vishal”},
    {“id”: 4, “name”: None},
    ]
    print(“With Python 3.8 Walrus Operator:”)
    for entry in sample_data:
        if name := entry.get(“name”):
            print(f’Found name = {name}’)
    print(“Without Walrus operator:”)
    for entry in sample_data:
        name = entry.get(“name”)
        if name:
            print(f’Found name = {name}’)Output:
    With Python 3.8 Walrus Operator:
    Found name = “Srijan”
    Found name = “Abhishek”
    Found name = “Dilip”
    Found name = “Vishal”
    Without Walrus operator:
    Found name = “Srijan”
    Found name = “Abhishek”
    Found name = “Dilip”
    Found name = “Vishal”

    2. 仅限位置形参

    现在,在定义方法的参数时可以使用特殊的标记「/」,以指定该函数仅接受标记左侧的位置参数。此处的「/」标记表示 x,y 和 z 的值只能在位置上传递,而不能使用关键字参数。

    Code:
    def func1(x,y,z=None,/):
        r = x + y
        if z is not None:
            r -= z
        return r
    print(func1(2, 5)) #7
    print(func1(2, 5, 3)) #4
    print(func1(x=2, y=10)) #TypeError
    print(func1(2, 10, z=3)) #TypeError

    3. f-string 支持「=」

    现在,你可以在 f-string 中使用「=」运算符来获取并打印值。
    这意味着现在我们可以在 f-string 中执行算术运算了。

    a=5
    b=6
    print(f'sum={a+b}') #11

    4. * 新语法警告 **

    Python 为缺少逗号引入了新的警告消息,在这个新版本中的错误消息。解释器会抛出这个有用的警告信息,这将有助于用户快速找到自己的错误。

    list1=[[0,1] [2,3]] #这将给出缺少逗号和TypeError的SyntaxWarning。
    Python
     

    SyntaxWarning

    5. 可逆字典

    reversed() 现在可用于字典。Python 已经开始从 3.7 开始保留 Dictionary 中插入键的顺序,但现在在 3.8 中,您也可以反转它。

    dict1={'a':5,'b':6}
    print(dict1)    #{'a': 5, 'b': 6}
    print(list(reversed(dict1)))    ['b', 'a']

    6. 多处理共享内存

    使用多处理,可以跨 Python 的所有实例全局共享和访问数据。这将大大加快数据的保存、存储、访问和传输。

    7. 创建 pickle 文件的新协议

    Python 中的 Pickle 主要用于序列化和反序列化数据,以及可以在其他地方使用的代码。在这个新版本中,Python 将默认使用 Protocol 4,您也可以将 Protocol 5 与之一起使用。这将使 Api 得到充分利用,从而提高性能。
    对于在数据科学领域工作的人来说,这是一个令人兴奋的消息,因为即使在空间较低或有限的服务器上,这也能很好地与 Django 和 Flask 一起工作。

    8. 改进的 CPython

    Python 还表示,他们已经改进了 Python 的 C 引擎。这将使 Python 中的优化变得容易。数据科学领域的人们已经遇到了很多 Python 或 Jupyter 环境由于大量数据而崩溃的例子。随着 CPython 模块的改进,用户可以期望在处理和查询数据时获得更好的结果。

    9. 性能改进

    此版本增加了一些性能,加快了解释器的速度。其中一些是:

    • operator.itemgetter() 现在快了 33%。
    • Field lookups in collections.namedtuple() 中的字段查找现在快了两倍多。
    • 列表构造函数现在创建的列表平均小 12%。
    • uuid.UUID 现在使用插槽来减少内存占用。
    • 一些简单的内置和方法的调用现在快了 20-50%。

    总结

    很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,都会解决哦!

    本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
  • 相关阅读:
    P2805 [NOI2009]植物大战僵尸
    P3833 [SHOI2012]魔法树
    LOJ121 「离线可过」动态图连通性
    POJ2774 Long Long Message
    POJ2406 Power Strings
    SPOJ 694 DISUBSTR
    POJ3261 Milk Patterns
    HIHOcoder 1466 后缀自动机六·重复旋律9
    P2504 [HAOI2006]聪明的猴子
    P3804 【模板】后缀自动机
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12259862.html
Copyright © 2011-2022 走看看