欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3.9之你應(yīng)該知道的新特性詳解

 更新時(shí)間:2021年04月29日 15:29:21   作者:可愛(ài)又迷人的 反派角色  
這篇文章主要介紹了python3.9之你應(yīng)該知道的新特性詳解,需要的朋友可以參考下

一、數(shù)字類(lèi)型

python除了支持原有的int和float類(lèi)型,新增了支持Decimal或者Fraction。python還內(nèi)置支持復(fù)數(shù),后綴j或者J用于標(biāo)識(shí)虛數(shù)。

二、字符串

如果字符串中有單引號(hào)而沒(méi)有雙引號(hào),該字符串外將加注雙引號(hào),反之,則加注單引號(hào)。print() 函數(shù)輸出的內(nèi)容更簡(jiǎn)潔易讀,它會(huì)省略?xún)蛇叺囊?hào),并輸出轉(zhuǎn)義后的特殊字符。

>> '"Isn\'t," they said.'
'"Isn\'t," they said.'
>>> print('"Isn\'t," they said.')
"Isn't," they said.
>>> s = 'First line.\nSecond line.'  # \n means newline
>>> s  # without print(), \n is included in the output
'First line.\nSecond line.'
>>> print(s)  # with print(), \n produces a new line
First line.
Second line.

如果不希望前置的\字符轉(zhuǎn)譯成特殊字符,可以使用原始字符串,在引號(hào)前添加r即可。

>>> print('C:\some\name')  # h這里的\n會(huì)被認(rèn)為是轉(zhuǎn)義字符
C:\some
ame
>>> print(r'C:\some\name')  #在轉(zhuǎn)義之前標(biāo)記為r
C:\some\name

字符串可以使用+合并到一起,也可以使用*表示復(fù)制多次

>>>3 * 'mmm'  + ‘qqq'
>'mmmmmmmmmqqq'

相鄰的兩個(gè)或者多個(gè)字符串會(huì)自動(dòng)合并

>>>'Py' 'thon'
>‘Python'

拆分長(zhǎng)字符串時(shí),這個(gè)功能特別實(shí)用:

>>>('Put several strings within parentheses '
...         'to have them joined together.')
>>>text
>'Put several strings within parentheses to have them joined together.'

這個(gè)功能只能用于兩個(gè)字面值,不能用于變量或者表達(dá)式:

>>> prefix = 'Py'
>>> prefix 'thon'  # can't concatenate a variable and a string literal
  File "<stdin>", line 1
    prefix 'thon'
                ^
SyntaxError: invalid syntax
>>> ('un' * 3) 'ium'
  File "<stdin>", line 1
    ('un' * 3) 'ium'
                   ^
SyntaxError: invalid syntax

合并多個(gè)變量或者合并變量與字面值,要使用“+”:

>>> prefix + 'thon'
'Python'

字符串支持索引,正向索引和反向索引都支持。

str[0]  str[1]  str[-1]
#為什么反向索引從-1開(kāi)始?
#-0 和 0 相等,指向的是同一個(gè)值。

python支持切片操作。索引可以提取單個(gè)字符,切片操作可以提取字符串。

>>> word[0] 
'P'
>>> word[2:5] 
'tho'

python切片操作輸出結(jié)果包含切片開(kāi)始,但是不包含切片結(jié)束。因此s[:i] + s[i:]總是等于s

>>> word[:2] + word[2:]
'Python'
>>> word[:4] + word[4:]
'Python'

python可以自動(dòng)處理越界索引:

>>> word[4:42]
'on'
>>> word[42:]
''

python字符串是不可變量,所以直接對(duì)某個(gè)索引復(fù)制會(huì)報(bào)錯(cuò)。如果想改變字符串的值,必須新建一個(gè)字符串。

三、列表類(lèi)型

python列表是個(gè)很神奇的類(lèi)型,列表中添加的元素可以是不同的數(shù)據(jù)類(lèi)型。與python字符串一樣,python列表也支持索引和切片操作。

切片操作會(huì)返回包含請(qǐng)求元素的新列表。返回的是列表的淺拷貝。

#補(bǔ)充:深拷貝和淺拷貝的區(qū)別:
#使用淺拷貝,當(dāng)原容器對(duì)象中可變對(duì)象中有元素發(fā)生變化,拷貝得到的對(duì)象也會(huì)變#化。而使用深拷貝時(shí),不會(huì)有這種問(wèn)題。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# @Author : qmt
# @Time : 2021/4/27 21:26
import copy
# 淺拷貝
list1 = [[1,1], 555 , 'mm']
list2 = list1.copy()
list3 = copy.copy(list1)
print(id(list1))
print(id(list2))
print(id(list3))
# 輸出結(jié)果
# 2207574630976
# 2207574779456
# 2207574778816

print(id(list1[0]))
print(id(list2[0]))
# 輸出結(jié)果:
# 2287435172736
# 2287435172736

print(id(list1[1]))
print(id(list2[1]))
# 輸出結(jié)果:
# 2085715335536
# 2085715335536

print(id(list1[2]))
print(id(list2[2]))
print(id(list3[2]))
# 輸出結(jié)果:
# 3009054756720
# 3009054756720
# 3009054756720

# 改變第一個(gè)值,查看復(fù)制對(duì)象的變化
list1[0][0] = 100
print(list1)
print(list2)
print(list3)
# 輸出結(jié)果:
# [[100, 1], 555, 'mm']
# [[100, 1], 555, 'mm']
# [[100, 1], 555, 'mm']


list1[2] = 32
print(list1)
print(list2)
print(list3)
# 輸出結(jié)果:
# [[100, 1], 555, 32]
# [[100, 1], 555, 'mm']
# [[100, 1], 555, 'mm']
# 字符串是不可變對(duì)象,所以淺拷貝不會(huì)同步到其他復(fù)制對(duì)象中


list1[1] = 'mm'
print(list1)
print(list2)
print(list3)
# 輸出結(jié)果:
# [[100, 1], 'mm', 32]
# [[100, 1], 555, 'mm']
# [[100, 1], 555, 'mm']

深拷貝:

#!/usr/bin/python
# -*- coding:utf-8 -*-
# @Author : qmt
# @Time : 2021/4/27 21:35
import copy
list1 = [[1,2],'mm',2222]
list2 = copy.deepcopy(list1)

print(id(list1))
print(id(list2))
# 輸出結(jié)果:指向不同的內(nèi)存地址
# 2847485493888
# 2847485646528

list1[0][0] = 100
print(id(list1))
print(id(list2))
# 輸出結(jié)果:list2作為一個(gè)深拷貝對(duì)象,內(nèi)存地址并沒(méi)有發(fā)生變化
# 1368800613056
# 1368800441920

list1[2] = 100
print(list1)
print(list2)
# 輸出結(jié)果:list1的任何操作都不會(huì)對(duì)list2產(chǎn)生影響,因?yàn)檫@相當(dāng)于創(chuàng)建了一個(gè)新的對(duì)象
[[100, 2], 'mm', 100]
[[1, 2], 'mm', 2222]

總結(jié):

可變類(lèi)型 Vs 不可變類(lèi)型
可變類(lèi)型(mutable):列表,字典
不可變類(lèi)型(unmutable):數(shù)字,字符串,元組

深拷貝會(huì)把可變對(duì)象也拷貝一份,而淺拷貝不會(huì)。

上面例子中說(shuō)的是列表(可變對(duì)象)的拷貝,那對(duì)于元組,字符等不可不對(duì)象呢?

答案是,對(duì)不可變對(duì)象,其實(shí)不存在深淺拷貝的問(wèn)題。無(wú)論怎么拷貝,效果都是新建立一個(gè)指向不可變對(duì)象的指針而已。

import copy
a = (1,2)
b = copy.copy(a)
c =copy.deepcopy(a)
print(b == c)
print(id(b)==id(c))

lista = [5,6]
listb = copy.copy(lista)
listc = copy.copy(lista)
print(listb == listc)
print(id(lista) == id(listb))

輸出結(jié)果:

True
True
True
False

Python中的對(duì)象包含三個(gè)基本要素,分別是:
id:用來(lái)唯一標(biāo)識(shí)一個(gè)對(duì)象,可以理解為內(nèi)存地址;
type:標(biāo)識(shí)對(duì)象的類(lèi)型;
value:對(duì)象的值;
== :比較兩個(gè)對(duì)象的內(nèi)容是否相等,即兩個(gè)對(duì)象的 value 是否相等,無(wú)論 id 是否相等,默認(rèn)會(huì)調(diào)用對(duì)象的 __eq__()方法
is: 比較的是兩個(gè)對(duì)象是不是完全相同,即他們的 id 要相等。
也就是說(shuō)如果  a is b  為 True,那么 a == b 也為T(mén)rue

四、for循環(huán)

for n in range(2,10):
    for x in range(2,n):
        if n % x == 0:
            print(n ,'equals',x ,'*', n//x)
            break
    else:
        print(n,'is a prime number')

輸出結(jié)果:

2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

到此這篇關(guān)于python3.9之你應(yīng)該知道的新特性詳解的文章就介紹到這了,更多相關(guān)python3.9新特性?xún)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python制作釘釘加密/解密工具

    Python制作釘釘加密/解密工具

    本文給大家介紹的是使用Python實(shí)現(xiàn)釘釘?shù)募用芙饷芄ぞ叩暮诵拇a,非常的實(shí)用,對(duì)于大家學(xué)習(xí)Python加密解密非常有幫助,希望大家能夠喜歡
    2016-12-12
  • python動(dòng)態(tài)加載技術(shù)解析

    python動(dòng)態(tài)加載技術(shù)解析

    這篇文章主要介紹了python動(dòng)態(tài)加載技術(shù)解析,說(shuō)簡(jiǎn)單點(diǎn)就是,如果開(kāi)發(fā)者發(fā)現(xiàn)自己的代碼有bug,那么他可以在不關(guān)閉原來(lái)代碼的基礎(chǔ)之上,動(dòng)態(tài)替換模塊替換方法一般用reload來(lái)完成,需要的朋友可以參考下
    2023-07-07
  • Python使用email模塊對(duì)郵件進(jìn)行編碼和解碼的實(shí)例教程

    Python使用email模塊對(duì)郵件進(jìn)行編碼和解碼的實(shí)例教程

    Python中我們一般使用SMTP模塊來(lái)首發(fā)郵件,而用email模塊來(lái)處理郵件編碼,本文我們就來(lái)詳細(xì)看一下Python使用email模塊對(duì)郵件進(jìn)行編碼和解碼的實(shí)例教程,需要的朋友可以參考下
    2016-07-07
  • Python Django 實(shí)現(xiàn)簡(jiǎn)單注冊(cè)功能過(guò)程詳解

    Python Django 實(shí)現(xiàn)簡(jiǎn)單注冊(cè)功能過(guò)程詳解

    這篇文章主要介紹了Python Django 實(shí)現(xiàn)簡(jiǎn)單注冊(cè)功能過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • pytorch繪制并顯示loss曲線和acc曲線,LeNet5識(shí)別圖像準(zhǔn)確率

    pytorch繪制并顯示loss曲線和acc曲線,LeNet5識(shí)別圖像準(zhǔn)確率

    今天小編就為大家分享一篇pytorch繪制并顯示loss曲線和acc曲線,LeNet5識(shí)別圖像準(zhǔn)確率,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python中使用dwebsocket實(shí)現(xiàn)后端數(shù)據(jù)實(shí)時(shí)刷新

    Python中使用dwebsocket實(shí)現(xiàn)后端數(shù)據(jù)實(shí)時(shí)刷新

    dwebsocket是Python中一款用于實(shí)現(xiàn)WebSocket協(xié)議的庫(kù),可用于后端數(shù)據(jù)實(shí)時(shí)刷新。在Django中結(jié)合使用dwebsocket和Channels,可以實(shí)現(xiàn)前后端的實(shí)時(shí)通信,支持雙向數(shù)據(jù)傳輸和消息推送,適用于實(shí)時(shí)聊天、數(shù)據(jù)監(jiān)控、在線游戲等場(chǎng)景
    2023-04-04
  • Python中選擇排序的實(shí)現(xiàn)與優(yōu)化

    Python中選擇排序的實(shí)現(xiàn)與優(yōu)化

    選擇排序(Selection?Sort)是一種簡(jiǎn)單但有效的排序算法,本文將詳細(xì)介紹選擇排序算法的原理和實(shí)現(xiàn),并提供相關(guān)的Python代碼示例,需要的可以參考一下
    2023-06-06
  • 10個(gè)Python常用的損失函數(shù)及代碼實(shí)現(xiàn)分享

    10個(gè)Python常用的損失函數(shù)及代碼實(shí)現(xiàn)分享

    損失函數(shù)是一種衡量模型與數(shù)據(jù)吻合程度的算法。損失函數(shù)測(cè)量實(shí)際測(cè)量值和預(yù)測(cè)值之間差距的一種方式。本文為大家總結(jié)了10個(gè)常用的損失函數(shù)及Python代碼實(shí)現(xiàn),需要的可以參考一下
    2022-09-09
  • Pytorch實(shí)現(xiàn)LSTM和GRU示例

    Pytorch實(shí)現(xiàn)LSTM和GRU示例

    今天小編就為大家分享一篇Pytorch實(shí)現(xiàn)LSTM和GRU示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Elasticsearch py客戶(hù)端庫(kù)安裝及使用方法解析

    Elasticsearch py客戶(hù)端庫(kù)安裝及使用方法解析

    這篇文章主要介紹了Elasticsearch py客戶(hù)端庫(kù)安裝及使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論