Python 可变数据类型和不可变数据类型 - Python零基础入门教程
目錄
- 一.關于內存
- 二.可變數據類型和不可變數據類型
- 1.可變數據類型和不可變數據類型區別
- 2.不可變數據類型
- 3.可變數據類型
- 三.重點總結
- 四.猜你喜歡
零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門
Python 數據類型分別有整數 int / 浮點數 float / 布爾值 bool / 元組 tuple / 列表 list / 字典 dict;
其中數據類型分為兩個大類,一種是可變數據類型;一種是不可變數據類型,兩者有什么區別呢?
一.關于內存
在講解 Python 可變數據類型和不可變數據類型之前需要先普及一下內存相關的簡單知識!
在 Python 編程的時候,代碼中的變量實際上都是存儲在計算機內存中,當然這里指的內存在計算機中是虛擬的,你看不見摸不著!每一個內存都有一個對應的內存地址,講到這里需要再次介紹一個 Python 內置函數 id,該函數可以用于獲取內存地址!獲取內存地址方法如下:
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 可變數據類型和不可變數據類型.py @Time:2021/3/20 23:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""if __name__ == "__main__":a = 10b = 20print("a的數據類型是:{} 地址:{}".format(type(a),id(a)))print("b的數據類型是:{} 地址:{}".format(type(b), id(b)))''' 輸出結果: a的數據類型是:<class 'int'> 地址:1994744256 b的數據類型是:<class 'int'> 地址:1994744576'''分析下上面代碼:定義了局部變量 a 和 b , Python 會自動給局部變量分配內存,分別用來存放整數 10 和 20 ,并通過內置函數 id 獲取內存地址!關于內存這里不做過多介紹,你需要記住的是:每一個內存都有一個一個對應的內存地址,分配的內存在程序結束時由系統自動回收!
二.可變數據類型和不可變數據類型
Python 數據類型分別有整數 int / 浮點數 float / 布爾值 bool / 元組 tuple / 列表 list / 字典 dict ,這是 Python 開發中最常用的數據類型!
1.可變數據類型和不可變數據類型區別
可變數據類型:當該數據類型對應的變量的值發生了變化時,如果它對應的內存地址不發生改變,那么這個數據類型就是 可變數據類型。
不可變數據類型:當該數據類型對應的變量的值發生了變化時,如果它對應的內存地址發生了改變,那么這個數據類型就是 不可變數據類型。
總結:可變數據類型更改值后,內存地址不發生改變;不可變數據類型更改值后,內存地址發生改變。
2.不可變數據類型
不可變數據類型:數值類型(int、float、bool)、string(字符串)、tuple(元組)
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 可變數據類型和不可變數據類型.py @Time:2021/3/25 23:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""#整形變量 a = 10 print("整形變量a修改之前地址:{}".format(id(a))) a = 20 print("整形變量a修改之后地址:{}".format(id(a))) print("***"*20)#浮點數變量 a = 10.5 print("浮點數變量a修改之前地址:{}".format(id(a))) a = 20.2 print("浮點數變量a修改之后地址:{}".format(id(a))) print("***"*20)#字符串變量 a = "hello" print("字符串變量a修改之前地址:{}".format(id(a))) a = "world" print("字符串變量a修改之后地址:{}".format(id(a))) print("***"*20)#布爾值變量 a = False print("布爾值a修改之前地址:{}".format(id(a))) a = True print("布爾值a修改之后地址:{}".format(id(a))) print("***"*20)#元組的數據不能修改,否則會報錯''' 輸出結果: 整形變量a修改之前地址:1994744256 整形變量a修改之后地址:1994744576 ************************************************************ 浮點數變量a修改之前地址:2713286559088 浮點數變量a修改之后地址:2713286559136 ************************************************************ 字符串變量a修改之前地址:2713269294224 字符串變量a修改之后地址:2713269272112 ************************************************************ 布爾值a修改之前地址:1994252480 布爾值a修改之后地址:1994252448 ************************************************************ '''3.可變數據類型
可變數據類型:list(列表)、dict(字典)
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 可變數據類型和不可變數據類型.py @Time:2021/3/25 23:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""#列表 a = list() print("列表a修改之前地址:{}".format(id(a))) a.append(20) print("列表a修改之后地址:{}".format(id(a))) a.append(False) print("列表a修改之后地址:{}".format(id(a))) a.append("hello") print("列表a修改之后地址:{}".format(id(a))) print("***"*20)#字典 a = dict() print("字典a修改之前地址:{}".format(id(a))) a["name"]="zhangsan" print("字典a修改之后地址:{}".format(id(a))) a["age"]=18 print("字典a修改之后地址:{}".format(id(a))) a["sing_dog"]=True print("字典a修改之后地址:{}".format(id(a))) print("***"*20)''' 輸出結果: 列表a修改之前地址:2067294579016 列表a修改之后地址:2067294579016 列表a修改之后地址:2067294579016 列表a修改之后地址:2067294579016 ************************************************************ 字典a修改之前地址:2067294527992 字典a修改之后地址:2067294527992 字典a修改之后地址:2067294527992 字典a修改之后地址:2067294527992 ************************************************************'''三.重點總結
- 1.不可變數據類型:數值類型(int、float、bool)、string(字符串)、tuple(元組)
- ** 2.可變數據類型:list(列表)、dict(字典)**
- ** 3.可變數據類型更改值后,內存地址不發生改變;不可變數據類型更改值后,內存地址發生改變;**
四.猜你喜歡
未經允許不得轉載:猿說編程 ? Python 可變數據類型和不可變數據類型
總結
以上是生活随笔為你收集整理的Python 可变数据类型和不可变数据类型 - Python零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BugkuCTF-Crypto题贝斯家
- 下一篇: Python 线程条件变量 Condit