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

Python不支持 i ++ 語法的原因解析

 更新時間:2020年07月22日 09:15:16   投稿:mrr  
這篇文章主要介紹了Python不支持 i ++ 語法的原因解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

簡要討論為什么它不提供++作為運算符

正常情況下,當有人問起++原因而不是Python中的運算符時,這一行引起了我的注意。

如果您想知道最初的原因,則必須翻閱舊的Python郵件列表,或詢問那里的某個人(例如Guido)〜通過stackoverflow

這迫使我像上圖一樣思考。 真的我必須問Guido原因嗎? 好的,也許但是在那之前,我應該嘗試一下,這促使我寫這篇文章

在C / C ++ / Java之類的語言中,對整數變量進行自增或自減運算是標準的,可以分為前綴運算(++ i和–i)和后綴運算(i ++和i–), 每個都有細微的差異和不同的目的。

當這些語言的用戶進入Python時,他們可能會想知道為什么它不提供++或-操作。

盡管前綴++ i可能出現在Python中,但它不是" ++"自增運算符。

在這種情況下,它只是兩個" +"(正號)的疊加,而根本不支持" ++"后綴! (SyntaxError:語法無效)。

那么,為什么Python不支持i ++增量語法?

首先,Python當然可以實現自我增強的效果,即以i + = 1或i = i + 1的形式編寫,這在其他語言中也很常見。

盡管Python在底部使用了不同的魔術方法(add ()和__iadd __())來完成計算,但是表面上的效果卻完全相同。

因此,我們的問題可以轉換為:為什么以上兩種書寫風格會比i ++更好,并成為Python的最終選擇?

1. Python整數是不可變的類型

當我們定義i = 1000時,不同的語言會區(qū)別對待它們。

諸如C(寫入int = 1000)的語言將適用于內存空間,并將其``綁定''到固定名稱i上,同時寫入變量值1000。

這里,i的地址和類型是固定的,而值是可變的。

Python(寫i = 1000)也將申請內存空間,但是它將"綁定"到數字1000,即該1000的地址和類型是不可變的

因此,當我們使我"自我增加"(i = i + 1)時,兩者都被區(qū)別對待。

諸如C之類的語言首先找到存儲在i地址中的值,然后將其加1。 操作后,新值將替換舊值 Python的操作過程是將i指向的數字加1,然后,將結果綁定到新應用的存儲空間,然后將名稱標簽"粘貼"到新數字。

打個比方:C中的i就像是一個寄生了1000的主機,而Python中的1000就像了一個寄生了i的主機。 所以我在C語言中與Python中的1000相同

綜上所述,讓我們看一下i ++,不難發(fā)現:

在C之類的語言中,i ++可以表示i的數值屬性的增加,既不會打開新的內存空間,也不會創(chuàng)建新的一等公民 在像Python這樣的語言中,如果i ++是對其name屬性的操作,則這沒有任何意義。 如果將其理解為對數字本體的一種操作,那么情況將會很復雜。

它將生成一個新的一等公民1001,因此需要為其分配一個內存地址。 如果此時占用的地址為1000,則將涉及舊對象的回收,并且與1000的原始引用關系也將受到影響。 因此只能為1001打開新的內存空間

如果Python支持i ++,則其操作過程將比C ++復雜,并且其含義不再是"將數字增加1"(遞增),而應是"創(chuàng)建新數字"。

Python理論上可以實現i ++操作,但是它必須重新定義"增量運算符",這將導致具有其他語言經驗的人誤解。

最好讓每個人都直接寫i + = 1或i = i + 1。

2. Python具有可迭代的對象

諸如C / C ++之類的語言已將i ++設計為主要是為了方便使用三部分的for循環(huán)結構。

 

這種程序與數字本身的自增過程有關。 數字的增加與程序主體的執(zhí)行有關。

Python中沒有這種結構,它提供了一種更優(yōu)雅的方法:

這里反映了不同的思維方式。

  • 它關心值范圍內的迭代遍歷。
  • 它不在乎或不需要人為添加數字。

Python中的可迭代對象/迭代器/生成器提供了很好的迭代/遍歷用法,并且可以完全替代i ++。

例如,Python可以使用enumerate()與上述示例中的值同時遍歷下標和特定值。

再舉一個例子,對于字典遍歷,Python提供了keys(),values(),item()和其他遍歷方法,這些方法非常易于使用:

 

不僅在Python中很少使用i + = 1或i = i + 1,而且迭代對象的可用性使操作值范圍變得容易,并且很少有人要求對其進行累加。

因此,回到我們最初的問題,這兩種"自增"方法并不比i ++好多少,僅僅是因為它們是通用操作

這就是為什么無需引入新的運算符,Python會繼續(xù)提供基礎支持的原因。 真正的贏家是各種各樣的可迭代對象!

摘要

Python不支持遞增運算符,原因如下:

因為它的整數是一類不變的一等公民,所以如果要支持增量運算(++),將會帶來歧義

含糊不清的原因:在本故事中

主要是因為它具有更合適的實現,即迭代對象,它對遍歷操作具有良好的支持。

到此這篇關于Python不支持 i ++ 語法的原因解析的文章就介紹到這了,更多相關Python不支持 i ++ 語法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python讀寫壓縮文件的方法

    Python讀寫壓縮文件的方法

    這篇文章主要介紹了Python讀寫壓縮文件的方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Python實現考試自動答題的腳本分享

    Python實現考試自動答題的腳本分享

    最近這段時間天氣正正好,不冷不熱,是學習考駕照的好時機。為了幫助大家能夠順利獲得駕照,小編為大家準備了駕照考試的自動答題小程序,希望對大家有所幫助
    2023-03-03
  • Python爬蟲_城市公交、地鐵站點和線路數據采集實例

    Python爬蟲_城市公交、地鐵站點和線路數據采集實例

    下面小編就為大家分享一篇Python爬蟲_城市公交、地鐵站點和線路數據采集實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 使用Python繪制動態(tài)愛心并表白的代碼詳解

    使用Python繪制動態(tài)愛心并表白的代碼詳解

    在這個充滿浪漫的季節(jié),如何用代碼表達你的愛意呢?今天我們將使用 Python 的 matplotlib 和 numpy 庫繪制一個動態(tài)的愛心,并且在愛心上添加表白的文字,這將是一個獨特而浪漫的方式來表達你的心聲,感興趣的小伙伴跟著小編來看看吧
    2025-04-04
  • Django unittest 設置跳過某些case的方法

    Django unittest 設置跳過某些case的方法

    今天小編就為大家分享一篇Django unittest 設置跳過某些case的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python排序搜索基本算法之冒泡排序實例分析

    Python排序搜索基本算法之冒泡排序實例分析

    這篇文章主要介紹了Python排序搜索基本算法之冒泡排序,簡單說明了冒泡排序的原理,并結合實例形式分析了Python實現冒泡排序的相關操作技巧,需要的朋友可以參考下
    2017-12-12
  • Python定時任務框架APScheduler安裝使用詳解

    Python定時任務框架APScheduler安裝使用詳解

    這篇文章主要介紹了Python定時任務框架APScheduler安裝使用詳解,重點介紹如何使用APscheduler實現python定時任務,本文通過實例代碼給大家介紹的非常詳細,對Python定時任務APScheduler相關知識感興趣的朋友一起看看吧
    2022-05-05
  • 一文帶你了解Python中不同數據對象的空值校驗方法

    一文帶你了解Python中不同數據對象的空值校驗方法

    空值校驗在數據處理和應用程序開發(fā)中是一個非常重要的任務,Python提供了多種方式來檢查不同數據對象(如字符串、列表、字典、集合等)是否為空或包含空值,下面就跟隨小編一起來學習一下吧
    2024-01-01
  • 關于python中導入文件到list的問題

    關于python中導入文件到list的問題

    這篇文章主要介紹了關于python中導入文件到list的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 淺談flask截獲所有訪問及before/after_request修飾器

    淺談flask截獲所有訪問及before/after_request修飾器

    這篇文章主要介紹了淺談flask截獲所有訪問及before/after_request修飾器,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論

远安县| 大埔县| 罗甸县| 灌云县| 麟游县| 凌源市| 禹州市| 伊宁县| 江源县| 上虞市| 博爱县| 阿合奇县| 长葛市| 金沙县| 静宁县| 右玉县| 保靖县| 易门县| 白朗县| 五台县| 轮台县| 祥云县| 娄底市| 建宁县| 巨鹿县| 黄龙县| 碌曲县| 大埔区| 神农架林区| 普安县| 万年县| 通州区| 封开县| 桂平市| 内乡县| 广元市| 锦州市| 甘孜县| 长岛县| 民勤县| 四会市|