<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【Python】利用Conda嘗鮮Python 3.10

          共 2576字,需瀏覽 6分鐘

           ·

          2021-10-21 13:13

          1 簡(jiǎn)介

          就在幾天前,Python3.10的第一個(gè)正式版本3.10.0發(fā)布,之前我們只是從其各個(gè)測(cè)試版本中捕風(fēng)捉影地知曉了一些可能加入的新特性,而在正式版本中,我們得以一睹其正式加入的諸多新特性。

          本文我就將帶大家學(xué)習(xí)如何通過(guò)conda快速安裝3.10正式版本的Python,并體驗(yàn)其重要的一些新特性。

          2 Python 3.10正式版本重要特性一覽

          如果你已經(jīng)安裝了conda,那么直接通過(guò)conda-forgechannel,只需要下面這一行命令即可創(chuàng)建新的Python3.10正式版本虛擬環(huán)境:

          conda?create?-n?py310?python=3.10?-c?conda-forge?-y

          完成安裝之后,激活環(huán)境進(jìn)入Python的shell,可以看到版本為3.10.0,離譜的是我在使用pycharm設(shè)置環(huán)境后,嶄新的3.10.0環(huán)境竟然被識(shí)別為3.1(真是醉了)??,于是我換成用vscode進(jìn)行演示:

          下面就讓我們來(lái)體驗(yàn)其重要的一些新特性吧~

          2.1 新的結(jié)構(gòu)模式匹配語(yǔ)法

          上一次為Python引入新的語(yǔ)法和關(guān)鍵字還是async,而在這次的新版本中,引入了新的關(guān)鍵字matchcase,從而幫助我們得以在Python中使用到其他語(yǔ)言中類(lèi)似switch的語(yǔ)法,使用方式如下面例子所示,對(duì)于match其后聲明的值,后續(xù)的每個(gè)case會(huì)驗(yàn)證是否與其對(duì)應(yīng)值相等,最后的case _中的_代表Irrefutable Pattern,相當(dāng)于通配符,但是只允許置于「最后」一個(gè)case中:

          import?sys

          match?sys.argv[1]:
          ????case?'1':
          ????????print(1)
          ????case?'2':
          ????????print(2)
          ????case?'3':
          ????????print(3)
          ????case?_:
          ????????print('其他輸入')

          match-case語(yǔ)法配合上通配符_,當(dāng)輸入容器類(lèi)型的數(shù)據(jù)結(jié)構(gòu)時(shí),可以進(jìn)行一些更加自由的判斷:

          import?sys

          #?1?新的結(jié)構(gòu)模式匹配語(yǔ)法
          match?sys.argv[1:]:
          ????case?['1',?'2',?'3']:
          ????????print('分支1')
          ????case?['4',?_,?'6']:
          ????????print('分支2')
          ????case?['7',?'8',?_]:
          ????????print('分支3')
          ????case?_:
          ????????print('超出已知選項(xiàng)!')

          更有趣的是,我們還可以使用任意自定義變量名,在match-case的作用域內(nèi)輔助通配匹配,從而實(shí)現(xiàn)類(lèi)似下面例子的效果:

          import?sys

          #?1?新的結(jié)構(gòu)模式匹配語(yǔ)法
          match?(int(sys.argv[1]),?int(sys.argv[2])):
          ????case?(0,?0):
          ??????print("原點(diǎn)")
          ????case?(0,?y):
          ??????print(f"Y={y}")
          ????case?(x,?0):
          ??????print(f"X={x}")
          ????case?(x,?y):
          ??????print(f"X={x},?Y={y}")
          ????case?_:
          ??????print('輸入非法!')

          類(lèi)似的,針對(duì)對(duì)象的屬性值,也可以進(jìn)行類(lèi)似的通配判斷,更多用法你可以參考下面的例子進(jìn)行拓展:

          import?sys

          class?Demo:
          ????x:?int
          ????y:?int

          demo?=?Demo()
          demo.x?=?int(sys.argv[1])
          demo.y?=?int(sys.argv[2])

          #?1?新的結(jié)構(gòu)模式匹配語(yǔ)法
          match?demo:
          ????case?Demo(x=0,?y=0):
          ??????print("原點(diǎn)")
          ????case?Demo(x=0,?y=y):
          ??????print(f"Y={y}")
          ????case?Demo(x=x,?y=0):
          ??????print(f"X={x}")
          ????case?Demo(x=x,?y=y):
          ??????print(f"X={x},?Y={y}")
          ????case?_:
          ??????print('輸入非法!')

          2.2 更清晰的錯(cuò)誤提示

          Python3.10中,針對(duì)常見(jiàn)的各種錯(cuò)誤類(lèi)型,執(zhí)行代碼后的錯(cuò)誤提示更加明確,譬如下面是3.9與3.10針對(duì)同一種錯(cuò)誤的錯(cuò)誤輸出信息對(duì)比:

          2.3 支持括號(hào)包裹的多上下文管理器

          這個(gè)特性其實(shí)在3.9中就開(kāi)始出現(xiàn),在3.10中進(jìn)一步得到完善,使得下面的用法合法(與3.7進(jìn)行對(duì)比):

          2.4 更方便的聯(lián)合類(lèi)型提示設(shè)置

          在之前的版本中,當(dāng)我們用到多類(lèi)型提示時(shí),得這樣寫(xiě):

          from?typing?import?Union,?string

          def?some_funcion(flexible_parameter:?Union[int,?string])?->?Union[int,?string]:
          ????return?flexible_parameter

          而在3.10中,多類(lèi)型聯(lián)合不再必須用到Union,使用|連接即可,非常的方便:

          from?typing?import?string

          def?some_funcion(flexible_parameter:?int?|?string)?->?int?|?string:
          ????return?flexible_parameter

          2.5 更加準(zhǔn)確的錯(cuò)誤代碼行位置提示

          Python3.10中,代碼的錯(cuò)誤提示,對(duì)于具體錯(cuò)誤行位置的提示更加準(zhǔn)確了:


          以上就是本文的全部?jī)?nèi)容,歡迎在評(píng)論區(qū)與我進(jìn)行討論。


          往期精彩回顧




          站qq群554839127,加入微信群請(qǐng)掃碼:
          瀏覽 78
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  a片黄色成人电影 | 欧美一级aⅴ毛片 | 另类性爱视频 | 午夜羞羞在线网 | 狠狠躁日日躁夜夜躁A片无码 |