中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么理解Python使用行為

發布時間:2021-11-01 11:38:22 來源:億速云 閱讀:111 作者:iii 欄目:編程語言

這篇文章主要介紹“怎么理解Python使用行為”,在日常操作中,相信很多人在怎么理解Python使用行為問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么理解Python使用行為”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Python中的所有內容都是一個對象-包括數字。 這很重要,因為數字-5 ;  256是在運行時分配的,訪問它們會返回對該對象的引用,因此使您可以永久更改這些數字的值(在Python實例中)。  現在我還不知道它有多少實際用途,但確實很有趣。

熱身

您需要一些基本的C知識和ctypes庫。 首先,更改一個相對未使用的數字的值,例如31:

>>> import ctypes >>> def changeNum(oldNum, newNum):   ... ctypes.cast(id(oldNum), ctypes.POINTER(ctypes.c_int))[6] = newNum >>> changeNum(31, 100)  # changes 31 to 100 >>> 31100

讓我們嘗試一些基本的算法:

>>> 31 + 31200  >>> 31 ** 0.510.0  >>> 31 ** 210000

此輸出使我感到非常不舒服,如果您也有這種感覺,對即將發生的事情感到抱歉。 現在,讓我們真正運行該手套:

>>> 31 == 100  True  >>> changeNum(100, 200)  >>> 31100  >>> 100200  >>> 31 == 100  False  >>> 31 == 200  False  >>> 31 * 2 == 200  True>>> 31 * 2 == 100  True

更改值后,它就消失了。 您可以嘗試找回原始值,但已將其刪除。

>>> changeNum(100, 500 // 5)  >>> 100200  >>> changeNum(100, 50 * 2)  >>> 100200

絕對混亂

如果您尚未意識到,則對象本身會進行全局更改。 這意味著與該數字的任何交互都是"未定義的"。 讓我們看看行為在for循環中是如何"定義"的:

>>> changeNum(5, 100)  >>> for i in range(5):  ... print(i)  ...012  ...99

相當標準; 作為一個不一致的數字系統可以得到的標準。 變得很奇怪:如果我更改5的值,則5在技術上不再存在。 這會導致基本操作中非常奇怪的交互:

>>> changeNum(5, 20) >>> 5 - 7 == 13 True >>> 5 - 7 - 8 == 5 True

如果您真的想傷害您的大腦,請弄亂另外幾個數字并做一些數學運算:

>>> changeNum(29, 100) >>> changeNum(5, 20) >>> changeNum(120, 200) >>> 5 + 9100 >>> 5 + 9 + 5200 >>> 5 + 9 + 5 + 5220 >>> (5 + 9) * 52000

您還可以制作一個非常令人困惑的無限while循環:

>>> while 5 // 4 == 5: ... pass ... # Do loop stuff

崩潰的Python

我們現在去釣大魚吧; 我們已經解決了其他不重要的數字,但是如果我們改變1會發生什么?

>>> changeNum(1, 2) >>> 1 Segmentation fault (core dumped)

它崩潰了。 這不足為奇,因為1是非常重要的計算中使用的非常重要的數字。 我不確定更改1是否會影響True,但如果確實如此,我會想像一下后果。

到此,關于“怎么理解Python使用行為”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安西县| 珠海市| 芜湖市| 修文县| 黄大仙区| 麟游县| 丽水市| 湘阴县| 珠海市| 晋州市| 新巴尔虎右旗| 克山县| 黔东| 稻城县| 定结县| 淳化县| 张家川| 启东市| 北辰区| 昆山市| 五华县| 田林县| 塔城市| 安庆市| 北流市| 柯坪县| 绥中县| 大化| 石林| 乐业县| 大洼县| 盐山县| 桂东县| 塘沽区| 栖霞市| 五原县| 建水县| 井冈山市| 仁寿县| 察隅县| 林芝县|