最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python不支持i++運(yùn)算原理實(shí)例解析

 更新時(shí)間:2024年02月01日 10:43:20   作者:小寒聊python  
這篇文章主要為大家介紹了python不支持 i++運(yùn)算原理實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

在 C/C++/Java 等語(yǔ)言中,整型變量的自增或自減操作是標(biāo)準(zhǔn)的。它們可以分為前綴操作(++i和--i)和后綴操作(i++和i--),它們有細(xì)微的區(qū)別和不同的用途。

那么為什么在 python 中不支持 i++ 等操作呢。

Python 中的整數(shù)是不可變類型

當(dāng)我們定義 i = 1000 時(shí),不同的語(yǔ)言會(huì)有不同的處理。

  • 像 C 這樣的語(yǔ)言(寫為 int i = 1000)會(huì)分配一塊內(nèi)存并將其 “綁定” 到變量 i,同時(shí)寫入可變值 1000。這里,i 的地址和類型是固定的,而值是可變的(在一定范圍內(nèi))。

  • Python(寫成 i = 1000)也會(huì)分配一塊內(nèi)存,但它會(huì)被 “綁定” 到數(shù)字 1000 上。這個(gè) 1000 的地址和類型是固定的(不可變的),而 i 只是一個(gè)附在上面的名字標(biāo)簽,1000 沒(méi)有固定地址和類型。

所以當(dāng)我們?cè)黾?i (i = i + 1) 時(shí),它們的處理是不同的:

  • 在像 C 這樣的語(yǔ)言中,它首先找到存儲(chǔ)在 i 地址處的值,然后將其加 1。操作完成后,新值替換舊值。

  • 在Python中,該過(guò)程包括將 i 指向的數(shù)字加1,然后將結(jié)果綁定到新分配的內(nèi)存塊,然后將名稱標(biāo)簽 i 附加到這個(gè)新數(shù)字。新舊數(shù)字可以共存;它們不會(huì)互相替代。

有了上面的理解,我們?cè)賮?lái)看看i++,不難發(fā)現(xiàn):

  • 在C語(yǔ)言中,i++可以表示 i 的數(shù)值屬性的增加。它不會(huì)分配新的內(nèi)存空間或創(chuàng)建新的一等公民。

  • 在像 Python 這樣的語(yǔ)言中,如果 i++ 是對(duì)其 name 屬性的操作,那么它將毫無(wú)意義(你不能只是按字母順序?qū)?i 更改為 j )。如果理解為對(duì)數(shù)字實(shí)體的操作,那么情況就變得復(fù)雜了:它會(huì)創(chuàng)建一個(gè)新的一等公民 1001,因此需要為其分配內(nèi)存地址。此時(shí)如果占用1000 的地址,就涉及到舊對(duì)象的回收,所有已經(jīng)存在的與1000的引用關(guān)系都會(huì)受到影響。因此,只有分配新的內(nèi)存空間才能給出1001。

如果 python 支持 i++,它的運(yùn)算過(guò)程會(huì)比 C 的 i++ 更復(fù)雜,其含義將不再是 “將數(shù)字增加1”(增量),而是“創(chuàng)建一個(gè)新數(shù)字”(加法)。在這種情況下,“增量運(yùn)算符” 就不再名副其實(shí)了。

Python 理論上可以實(shí)現(xiàn) i++ 的操作,但是接下來(lái)它必須重新定義“自增運(yùn)算符”,這可能會(huì)給有其他語(yǔ)言經(jīng)驗(yàn)的人造成誤解。大家最好直接寫成 i+=1 或者 i=i+1。

Python 有可迭代對(duì)象

在 C/C++ 等語(yǔ)言中設(shè)計(jì) i++ 的主要目的是方便使用 for循環(huán)。

for(int i = 0; i < 100; i++){ 
    // 執(zhí)行 xxx 
}

該程序涉及數(shù)字的自增過(guò)程,其中數(shù)字的加法與程序體的執(zhí)行相關(guān)聯(lián)。

python 沒(méi)有這種結(jié)構(gòu)語(yǔ)法。相反,它提供了一種更優(yōu)雅的方式:

for i in range(100): 
    # 執(zhí)行 xxx 

my_list = ["Hello", "I'm boleo", "Please follow me!"] 
for info in my_list: 
    print(info)

這體現(xiàn)了不同的思維方式。它關(guān)注的是在數(shù)值范圍內(nèi)迭代,不需要也不關(guān)心手動(dòng)添加數(shù)字。

Python 的可迭代對(duì)象/迭代器/生成器提供了非常好的迭代/遍歷用法,可以完全替代 i++。

例如,在上面的示例中,它實(shí)現(xiàn)了列表內(nèi)值的遍歷。Python 還可以使用 enumerate() 同時(shí)遍歷索引和特定值。

my_list = ["Hello", "I'm boleo", "Please follow me!"]
for i, info in enumerate(my_list):
    print(i, info)

比如對(duì)于字典的遍歷,python 提供了 keys()、values()、items() 等方法,非常有用。

my_dict = {'a': '1', 'b': '2', 'c': '3'}
for key in my_dict.keys():
    print(key)

for key, value in my_dict.items():
    print(key, value)

總之,Python 不支持增量運(yùn)算符,因?yàn)樗恼麛?shù)是不可變的一等公民。支持增量運(yùn)算 (++) 會(huì)帶來(lái)歧義。此外,它還有更合適的實(shí)現(xiàn),例如可迭代對(duì)象,為遍歷操作提供了良好的支持。

以上就是python不支持i++運(yùn)算原理實(shí)例解析的詳細(xì)內(nèi)容,更多關(guān)于python不支持 i++運(yùn)算的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python增加矩陣維度的實(shí)例講解

    python增加矩陣維度的實(shí)例講解

    下面小編就為大家分享一篇python增加矩陣維度的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 解決pycharm每次新建項(xiàng)目都要重新安裝一些第三方庫(kù)的問(wèn)題

    解決pycharm每次新建項(xiàng)目都要重新安裝一些第三方庫(kù)的問(wèn)題

    今天小編就為大家分享一篇解決pycharm每次新建項(xiàng)目都要重新安裝一些第三方庫(kù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python如何進(jìn)行基準(zhǔn)測(cè)試

    python如何進(jìn)行基準(zhǔn)測(cè)試

    這篇文章主要介紹了python如何進(jìn)行基準(zhǔn)測(cè)試,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • Python3自帶工具2to3.py 轉(zhuǎn)換 Python2.x 代碼到Python3的操作

    Python3自帶工具2to3.py 轉(zhuǎn)換 Python2.x 代碼到Python3的操作

    Python3自帶工具2to3.py 轉(zhuǎn)換 Python2.x 代碼到Python3的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python流水線框架pypeln的安裝使用教程

    python流水線框架pypeln的安裝使用教程

    這篇文章主要介紹了python流水線框架pypeln的安裝使用教程,通過(guò)安裝pip install pypeln,基本元素在文中給大家介紹過(guò),需要的朋友可以參考下
    2021-05-05
  • python編碼總結(jié)(編碼類型、格式、轉(zhuǎn)碼)

    python編碼總結(jié)(編碼類型、格式、轉(zhuǎn)碼)

    這篇文章主要介紹了python編碼操作,包括編碼類型、格式、轉(zhuǎn)碼等,并結(jié)合實(shí)例分析了相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2016-07-07
  • Python:Numpy 求平均向量的實(shí)例

    Python:Numpy 求平均向量的實(shí)例

    今天小編就為大家分享一篇Python:Numpy 求平均向量的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Python處理鍵映射值操作詳解

    Python處理鍵映射值操作詳解

    這篇文章主要為大家詳細(xì)介紹了Python中的處理鍵映射值操作的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2022-11-11
  • Python基礎(chǔ)教程之利用期物處理并發(fā)

    Python基礎(chǔ)教程之利用期物處理并發(fā)

    這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之利用期物處理并發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • pytorch geometric的GNN、GCN的節(jié)點(diǎn)分類方式

    pytorch geometric的GNN、GCN的節(jié)點(diǎn)分類方式

    這篇文章主要介紹了pytorch geometric的GNN、GCN的節(jié)點(diǎn)分類方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論

长寿区| 治多县| 娱乐| 茶陵县| 牙克石市| 泰兴市| 广安市| 太原市| 鲁甸县| 建水县| 河曲县| 琼中| 广水市| 邵阳市| 云梦县| 高青县| 珲春市| 敖汉旗| 皋兰县| 象山县| 克山县| 黄陵县| 连州市| 阿巴嘎旗| 灵石县| 昭平县| 七台河市| 镇坪县| 楚雄市| 株洲市| 义乌市| 灵山县| 湟中县| 宜川县| 建始县| 南乐县| 内黄县| 博乐市| 吴忠市| 萨迦县| 永年县|