国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領取全套視頻
            千鋒教育

            關注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術干貨  > Python3.10的新特性

            Python3.10的新特性

            來源:千鋒教育
            發(fā)布人:wjy
            時間: 2022-06-07 13:41:00 1654580460

              最新的 TIOBE的語言排名Python已經(jīng)榮登榜首,無容置疑Python已經(jīng)是當今最流行的編程語言之一,并且已被廣泛應用于各種領域。

            最新版Python3.10新特性83

             

              更加令我們興奮的是,經(jīng)過多次 alpha、beta 和 rc 測試,Python 編程語言終于發(fā)布了 3.10 版本。喜大普奔!

            最新版Python3.10新特性152

             

              安裝教程請參照:

              雖然新發(fā)布的3.10你不會立刻應用到你的開發(fā)中,但是這幾點新特性還是讓宋宋禁不住拍手叫好,福音啊!更詳細的內(nèi)容大家可以參看:https://docs.python.org/3.10/whatsnew/3.10.html

              在此給大家總結(jié)出以下幾點:

              新的語法特性有:

              • 模式匹配語法

              • 正式允許帶括號的上下文管理器

              標準庫中的新功能有:向 zip 添加可選的長度檢查

              解釋器改進:用于調(diào)試和其他工具的精確行號

              新類型功能:

              • 顯式類型別名

              • 允許將聯(lián)合類型寫為 X | Y

              • 參數(shù)規(guī)范變量

              刪除、棄用與限制:

              • 需要 OpenSSL 1.1.1 或更新版本

              • 棄用 distutils 模塊

              • 棄用并準備刪除 PyUnicodeObject 中的 wstr 成員

              • 刪除 Py_UNICODE 編碼器 API

              • 添加可選的 EncodingWarning

              但新版本中最為明顯的還要屬下面這幾個:

              • 結(jié)構化模式匹配

              • 更加友好的錯誤提示

              • 更加嚴謹?shù)膠ip

              結(jié)構化模式匹配

              熟悉 Java,C++的程序員對于switch和case不會陌生,但是對于Python 3.10以前,很遺憾,Python一直沒有類似的語法,不過自從3.10開始Python終于有類似語法了!是 match和case,通用語法格式:

            match subject:
                case <pattern_1>:
                    <action_1>
                case <pattern_2>:
                    <action_2>
                case <pattern_3>:
                    <action_3>
                case _:
                    <action_wildcard>

              <action_wildcard>

              模式匹配大大增加了控制流的清晰度和表達能力,比如:

            status = int(input('請輸入一個狀態(tài)碼:'))
            match status:
            case 400:
            print("Bad request")
            case 404:
            print("Not found")
            case 418:
            print("I'm a teapot")
            case _:
            print("Something's wrong with the internet")

              結(jié)果:

              請輸入一個狀態(tài)碼:404

              Not found

              大家可以發(fā)現(xiàn)跟Java的switch...case是不是很相似啊!

              更加友好的錯誤提示

              對于編程學習者,尤其是新手,會碰到各種各樣的編程錯誤,而有些錯誤的提示又不友好,甚至有些誤導!

              Python3.9采用了新的Parser,這給3.10更加人性的錯誤提示奠定了基礎。3.10進行了改進,這個改進涵蓋了:語法錯誤,縮進錯誤,屬性錯誤,名稱錯誤等。

              語法錯誤:

            expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,
                        38: 4, 39: 4, 45: 5, 46: 5, 47: 5, 48: 5, 49: 5, 54: 6,
            some_other_code = foo()

              以前的錯誤提示:有語法錯誤。還把錯誤的行數(shù)說錯了,這個就很誤導了!

            File "example.py", line 3
                some_other_code = foo()
                                ^
            SyntaxError: invalid syntax

              現(xiàn)在的提示要好多了,會發(fā)出更多信息錯誤:

                expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,
                           ^
            SyntaxError: '{' was never closed

              大量新的特殊SyntaxError異常消息已被納入。一些最顯著的如下:

              • :塊前缺失

              • 理解目標中的無括號元組

              • 集合文字中和表達式之間缺少逗號

              • 不帶括號的多種異常類型

              • :字典文字中的缺失值和值

              • try沒有塊except或finally塊

              • 在比較中使用=代替==

              • *在 f 字符串中的用法

              比如:

            {x,y for x,y in range(100)}
              File "<stdin>", line 1
                {x,y for x,y in range(100)}
                 ^
            SyntaxError: did you forget parentheses around the comprehension target?

              縮進錯誤:

              縮進錯誤是小白常見錯誤,現(xiàn)在有救啦,提示很友好:

            >>> def foo():
            ...    if lel:
            ...    x = 2
              File "<stdin>", line 3
                x = 2
                ^
            IndentationError: expected an indented block after 'if' statement in line 2

              屬性錯誤:

              用錯了屬性,不僅僅告訴你錯誤,有時還會你一些可能的選擇,簡直有點人工智能的味道了。

            collections.namedtoplo
            Traceback (most recent call last):
              File "<stdin>", line 1, in <module>
            AttributeError: module 'collections' has no attribute 'namedtoplo'. Did you mean: namedtuple?

              命名錯誤:

              當打印NameError由解釋器引發(fā)時,PyErr_Display() 將在引發(fā)異常的函數(shù)中提供類似變量名稱的建議:

            >>> schwarzschild_black_hole = None
            >>> schwarschild_black_hole
            Traceback (most recent call last):
              File "<stdin>", line 1, in <module>
            NameError: name 'schwarschild_black_hole' is not defined. Did you mean: schwarzschild_black_hole?

              更加嚴謹?shù)膠ip

              zip打包多個可迭代對象,但是也有一個隱含問題就是如果兩個可迭代對象的長度不一致,zip后丟失較長的可迭代對象元素

            a=['Jack','Lily','LiLei','Tom']  
            b=['a','b','C']                                                            

            for i in zip(a,b):
            print(i)

            '''
              結(jié)果:
              ('Jack', 'a')
              ('Lily', 'b')
              ('LiLei', 'C')
            '''

              為了解決這個問題,zip添加了一個布爾類型的參數(shù) strict,默認為False

            zip(*iterables, strict=False)

              當其為True時,打包的可迭代對象長度不一致時會拋異常;當為False時,與之前版本的zip完全相同,因此zip是完全向后兼容的。

            a=['Jack','Lily','LiLei','Tom']  
            b=['a','b','C']                                                            

            for i in zip(a,b,strict=True):
            print(i)

            '''
            報錯如下:
             File "C:\Users\running\Desktop\casedemo.py", line 16, in <module>
                for i in zip(a,b,strict=True):
            ValueError: zip() argument 2 is shorter than argument 1
            '''

             

            更多關于python培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學管理及學員服務,助力更多學員實現(xiàn)高薪夢想。

            tags:
            聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
            免費領取
            今日已有369人領取成功
            劉同學 138****2860 剛剛成功領取
            王同學 131****2015 剛剛成功領取
            張同學 133****4652 剛剛成功領取
            李同學 135****8607 剛剛成功領取
            楊同學 132****5667 剛剛成功領取
            岳同學 134****6652 剛剛成功領取
            梁同學 157****2950 剛剛成功領取
            劉同學 189****1015 剛剛成功領取
            張同學 155****4678 剛剛成功領取
            鄒同學 139****2907 剛剛成功領取
            董同學 138****2867 剛剛成功領取
            周同學 136****3602 剛剛成功領取
            相關推薦HOT