您好,登錄后才能下訂單哦!
這篇文章主要介紹“python數字的知識點有哪些”,在日常操作中,相信很多人在python數字的知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python數字的知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
python中的數字是不可變對象,有整形(int)、浮點型(float)、復數(complex)、布爾型(bool)。
小數字池:范圍是-5至256,當數值在這個范圍內時解釋器不需要新建對象,而是直接把緩存中該數值對應的id賦給變量。
# 在repl環境中測試下列代碼 >>> a=255 >>> b=255 >>> print(id(a),id(b)) # -5至256范圍內 out: 140728491521632 140728491521632 # a和b的id相同 >>> a=257 >>> b=257 >>> print(id(a),id(b)) # -5至256范圍外 out: 2083422435600 2083422435632 # a和b的id不同
值的范圍:python中整形不區分短整形、整形、長整形,解釋器會根據數字的大小動態分配存儲空間,值的范圍只受限于內存大小。
import sys a = 1000 b = 999999999999999999999 c = b**2 print(sys.getsizeof(a)) print(sys.getsizeof(b)) print(sys.getsizeof(c)) out: 28 36 44
內存消耗:python中浮點型相當于其他編程語言的雙精度浮點型,占用內存空間固定為24字節。python中無單精度浮點型。
import sys a = 9999999999999999999999999999999999999999999.99999999988888888 b = 0.1 print(sys.getsizeof(a), sys.getsizeof(b)) out: 24
值的范圍:關于浮點型值的范圍可以用用如下方式查看。
import sys print(sys.float_info) out: sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
python中的復數與數學中的復數概念完全相同。實際編程中很少用到,只有在極少數需要科學計算的場合才會用到。在此就不贅述了。
python的布爾型非常特殊,需要著重梳理。布爾是邏輯判斷,判斷結果只有2種:
字符串、元組、列表、字典、集合、類的實例等,值不為空判定為True。
整形、浮點型、復數,值不為0即判定為True。
字符串、元組、列表、字典、集合、類的實例等,值為空判定為True。
整形、浮點型、復數,值為0即判定為False。
None,判定為False。None是沒有的意思,即值的沒有確定、類型也沒有確定。要分清楚None和空的區別:None表示值未分配和類型也未確定,而空表示值未分配但類型已確定。
python的布爾判定設定非常特殊,熟練掌握以后可以寫出非常簡潔的代碼。以下我舉個簡潔實用的代碼實例。
# 刪除列表中開頭是'a'的元素 list1 = ['aa', 'adc', 'bb', 'cc', 'aa', 'abc', 'dd'] length = len(list1) while length: # 效果等價于while length==0 if list1[length - 1][0] == 'a': del list1[length - 1] length -= 1 print(list1) out: ['bb', 'cc', 'dd']
# 檢查序列是否有重復記錄,并告知重復了幾條記錄。 list1 = [1, 1, 2, 3, 4, 5] list2 = [1, 2, 3, 4, 5, 6] check_repeat = lambda x: len(x) - len(set(x)) # 輸入序列,返回序列原長度與去重后長度的差 if repeat_num := check_repeat(list1): # 等價于check_repeat(list1)>0 print(list1, f'有{repeat_num}條重復記錄' ) else: print(list1, '沒有重復記錄') if repeat_num := check_repeat(list2): print(list1, f'有{repeat_num}條重復記錄' ) else: print(list1, '沒有重復記錄') out: [1, 1, 2, 3, 4, 5] 有1條重復記錄 [1, 1, 2, 3, 4, 5] 沒有重復記錄
到此,關于“python數字的知識點有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。