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

溫馨提示×

溫馨提示×

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

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

Python數據類型使用注意事項有哪些

發布時間:2022-10-09 11:38:48 來源:億速云 閱讀:83 作者:iii 欄目:web開發

本文小編為大家詳細介紹“Python數據類型使用注意事項有哪些”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python數據類型使用注意事項有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

元組注意事項

元組是另一種經常使用到的數據類型,看上去和列表差不多。它們之間的區別在于列表是一個可變的數據類型,而元組是不可變的。

#元組
a = (1, 2)
#列表
a = [1, 2]

使用列表會更靈活,而元組支持的操作更少,有的人會認為沒有必要用元組,直接用列表就可以了。

但正因為元組不可變,限制了功能,從效率上來講它會更加快一些,而且,當你不想讓用戶去修改這個數據的時候,用元組會更合適,數據相對來說更加安全,不容易出bug。

使用元組的時候一定要記得在元素的后面加逗號,當一個元組只有一個元素的時候,后面不打逗號,是不能表示成元組的,而是元素本身的類型。

a = (1)  # 等于 1
a = (1,) #這才是元組

浮點數注意事項

在編程語言當中,浮點數的精度往往不能達到完全的精確,這會給我們編程帶來一些問題,甚至呢可能帶來很大的bug。比如說我們現在計算一個很簡單的小數點的運算,0.1+0.2,大家可以先回答一下這個應該等于多少呢?

print(0.1 + 0.2)

很明顯這是一個小學的數學題,但是呢,當我們交給Python去運算的話呢,我們得到結果并不是等于0.3而是等于

0.30000000000000004

這是計算機在表示十進制小數的時候會出現誤差。

從直觀的感受上看,這種精度好像造成不了太大的影響。但是,在對數據要求非常嚴格的情況下,這種誤差會引發打的問題,尤其是在做測試的時候,如果你你的預期結果和實際結果都不相等,那么你測試用例肯定是不會通過的。

在操作銀行、證券這類金融業務時,涉及到支付和錢的時候一定要有非常嚴格的精度控制。 此時,可以使用 decimal 模塊來保持高精度,我們把需要操作的浮點數先轉換成字符串,再作為參數傳給 Decimal 類。

from decimal import Decimal
print(Decimal("0.1") + Decimal("0.2"))
# 0.3

除法注意事項

在進行除法運算的時候,一定要牢記:被除數是不能等于0的。

當你把0作為一個被除數的時候,程序是會報錯的。

print(3 / 0)

列表注意事項

面試題當中列表問題出現的概率應該有80%以上,因為列表的操作非常頻繁,而且比較容易出錯,現在我們就來看一個經典問題:刪除列表元素。

有一個列表如下,請刪除列表當中的每一個元素,但是不能直接用clear方法。

names = ["九柄", "八柄", "七柄","六柄","五柄"]

按照條件反射,我們一般會寫一個 for 循環,然后依次執行remove方法或者 pop 方法來刪除元素。但是這樣得到的結果是不對的,總有幾個元素刪除不掉。

for name in names:
    names.remove(name)
print(names)
# ["八柄", "六柄"]

為什么會刪不干凈呢?最核心的原因是:刪除掉一個元素之后,這個列表發生了變化。

第1次,我們取到的元素是索引為0的 “九柄”, 它被刪掉了之后, 接下來去取索引為 1 的元素,因為“九柄” 已經被刪除,所以索引為0的元素已經被替換成 "八柄", 索引為1 的元素則為”七柄“, 七柄被刪,八柄跳過去了,沒有被刪除。

然后,取索引為 2 的數據,為 ”五柄“, ”六柄“ 又被跳過了,從而造成刪除不干凈的情況。

從這個例子當中我們得出一個結論,不要在for循環當中去修改列表刪除列表或者增加元素,這樣非常容易出 bug。那上面的問題如果我們想解決怎么辦呢?在我們去操作一個列表的時候,我們最好是做一個備份,不直接去修改原來的列表。

for name in names[:]:
    names.remove(name)
print(names)

可變類型和不可變類型

實際上大多數的可變類型雖然增加了靈活性,有更多的操作,但是更容易出bug。在我個人的編程過程當中,我會盡量使用不可變類型。

為了區分可變類型和不可變也行,我們舉幾個例子。

a = [1, 2, ("a", "b")]

此時,a 是列表,是可變類型,可以任意添加、修改其中的元素,比如把索引2的元素換成 c

a[2] = "c"
# [1,2,'c']

但是,不能改 ("a", "b") 當中的元素,因為它是個元組。

a[2][0] = "c"  # 報錯

讀到這里,這篇“Python數據類型使用注意事項有哪些”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

申扎县| 盐津县| 英山县| 林芝县| 尼玛县| 疏附县| 长宁区| 泽库县| 兰溪市| 宝鸡市| 许昌县| 乌苏市| 抚松县| 台山市| 巧家县| 河间市| 宣恩县| 卫辉市| 江津市| 独山县| 庆城县| 竹北市| 海晏县| 晋宁县| 皋兰县| 繁峙县| 乌鲁木齐县| 精河县| 封丘县| 绍兴县| 丹寨县| 德清县| 灌云县| 玉龙| 聊城市| 通化市| 沙雅县| 凉山| 舟山市| 绵竹市| 彩票|