精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python-變量的引用與可變

汽車電子技術 ? 來源:程序猿知秋 ? 作者: 程序猿知秋 ? 2023-02-16 15:15 ? 次閱讀

引用

概念

  • **變量 數據 **都是保存在內存中的
  • Python 中,函數參數傳遞和返回值 都是靠 引用 傳遞的
  • **變量 **和 數據是分開存儲的
  • 數據 保存在內存中的一個位置
  • 變量 中記錄數據的地址,就叫 引用
  • 使用** id() ** 函數可以查看變量中保存數據所在的 內存地址

注: 如果變量已經被定義,當給一個變更 重新賦值的時候,本質上是 修改了數據的引用

**示例

**

a=1
print(id(a))
print(id(1))


b=a
print(id(b))


a=2
print(id(a))

輸出結果:從這里面可以看出 前三個的內存地址是一樣的

圖片

圖片

**函數的參數傳遞與返回值的引用

**

def test(num):
  print("傳遞的值是:%d,內存地址是:%d" %(num,id(num)))
  result="test"
  print("返回的值是:%s,內存地址是:%d" %(result,id(result)))
  return result




a=1
print("需要傳遞的參數的值是:%d,內存地址是:%d"%(a,id(a)))


ss=test(a)
print("調用函數獲取的返回值是:%s,內存地址是:%d" %(ss,id(ss)))

**輸出結果

**

圖片

結論:從結果中可得知,在調用函數時,傳入的變量,實際上是將變量的引用內存地址 傳遞進去了。函數在返回時,同樣是將變量對應的 引用 返回出來了

可變和不可變類型

  • 不可變類型,即內存中的數據不允許被修改
    • 數字類型:int 、bool、float、complex、long
    • 字符串 str
    • 元組 tuple
  • 可變類型,即內存中的數據可以被修改
    • 列表 list
    • 字典 dict
    • 集合 set

示例

# 不可變數據類型
a=1
print("內存地址是:%d" %id(a))
a=2
print("內存地址是:%d" %id(a))




#可變數據類型
b=[1,2,3]
print("內存地址是:%d" %id(b))
b.append(4)
print("值是:%s,內存地址是:%d" %(b,id(b)))


#如果重新用 = 賦值,則會新建一塊內存地址
b=[]
print("新內存地址是:%d" %id(b))

輸出結果

圖片

結論:

  • 可變類型的數據變化,是通過方法來 實現的
  • 如果給一個可變類型的變量,賦值了一個新的數據,引用的地址則會不同

**哈希(hash)

**

  • Python 中內置有一個名字叫做 hash() 的函數
    • 接收一個 不可變類型 的數據作為參數
    • 返回 結果是一個整數
  • 哈希是一種算法,其作用就是提取數據的特征碼(類似指紋)
    • 相同的內容 得到 相同的結果
    • 不同的內容 得到 不同的結果
  • 在 Python 中,設置字典的鍵值對時,會首先對 key 進行 hash ,用來決定如何在內存中保存字典的數據,以方便 后續 對字典的操作:增、刪、改、查
    • 鍵值對的 key 必須是不可變類型的數據
    • 鍵值對的 value 可以是任意類型的數據
# 對同一個不可變的數據類型,hash 兩次,得到的結果是一樣的
print(hash("123"))
print(hash("123"))

輸出結果

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4237

    瀏覽量

    61969
  • 變量
    +關注

    關注

    0

    文章

    607

    瀏覽量

    28257
  • python
    +關注

    關注

    53

    文章

    4753

    瀏覽量

    84081
收藏 人收藏

    評論

    相關推薦

    python環境變量的配置pip

    Python環境變量的配置和使用是每個Python開發者都需要了解和掌握的基本技能之一。在本文中,我們將詳細介紹如何正確配置Python環境變量
    的頭像 發表于 12-15 15:41 ?2103次閱讀

    請問python-樹莓派如何通過按鍵控制步進電機正反轉?

    步進電機驅動原理是什么?python-樹莓派如何通過按鍵控制步進電機正反轉?
    發表于 10-09 08:45

    python-控制khr3hv-master機器人

    python-控制khr3hv機器人,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-22 15:40 ?2次下載

    python環境變量設置

    安裝python之后,我們往往面臨這樣一個問題,在命令行輸入“python”,竟然出錯,難道是沒有安裝成功嗎?非也,其實是你的系統環境變量沒有設置好。今天,小編就來帶大家學學python
    發表于 11-20 11:47 ?2324次閱讀
    <b class='flag-5'>python</b>環境<b class='flag-5'>變量</b>設置

    Python的常量與變量基礎知識詳解

    Python是一門強類型的動態語言。 字面常量,變量沒有類型,變量只是在特定的時間指向特定的對象而已,變量所指向的對象是有類型的。 變量
    發表于 12-14 05:31 ?1771次閱讀

    python設置環境變量

    我們想要運行python,需要安裝Python,還要設置一些環境變量1,此電腦,右鍵屬性2、高級系統設置-> 環境變量3、在系統變量中找到p
    發表于 11-10 14:49 ?841次閱讀

    Python私有變量的定義方法

    通過在類中定義接口,實現私有變量引用、讀取和修改。除了Python私有變量是使用“_”定義之外,還有兩種特殊變量,分別是:1. ?_xx?
    發表于 02-13 16:49 ?1607次閱讀

    Python-無處不在的變量

    Python中,每個變量在使用前都必須賦值,變量賦值以后,該變量才會被創建
    的頭像 發表于 02-16 14:51 ?505次閱讀

    Python-列表

    Python中,所有 非數字型變量 都支持以下特點
    的頭像 發表于 02-16 14:58 ?583次閱讀
    <b class='flag-5'>Python-</b>列表

    Python-局部變量與全局變量

    局部變量是在函數內部定義的變量,只能在函數內部使用,函數執行結束后,函數內部的局部變量會被系統回收,不同的函數,可以定義相同名稱的局部變量,相互之間沒有任何關聯
    的頭像 發表于 02-16 15:16 ?789次閱讀
    <b class='flag-5'>Python-</b>局部<b class='flag-5'>變量</b>與全局<b class='flag-5'>變量</b>

    淺析python變量類型

    python不需要事先聲明變量python變量類型是在運行過程中自動決定的,不需要代碼聲明類型。
    的頭像 發表于 03-10 10:11 ?716次閱讀
    淺析<b class='flag-5'>python</b>的<b class='flag-5'>變量</b>類型

    如何配置Python環境變量

    配置Python環境變量是在安裝Python解釋器后的一項重要步驟,它允許您在任何位置都可以通過命令行或腳本運行Python解釋器,使Python
    的頭像 發表于 04-14 12:16 ?2w次閱讀

    結構體成員變量引用方法123

    這里采用的是常用的typedef關鍵字進行定義結構體類型,可以看到student_t這種數據類型里面有4個成員變量,分別是學號、姓名、分數、年齡,這些成員變量既然是變量就應該滿足變量
    的頭像 發表于 07-08 14:45 ?2460次閱讀
    結構體成員<b class='flag-5'>變量</b>的<b class='flag-5'>引用</b>方法123

    Python可變對象真的不可變

    在日常的學習和工作中,經常會遇到"不可變對象"的問題,但是隨著接觸Python這門語言的時間越來越多,遇到的坑越來越奇怪。我不禁產生了一個疑問:不可變對象真的不可變嗎? 我們知道元組就
    的頭像 發表于 11-03 11:48 ?458次閱讀
    <b class='flag-5'>Python</b> 不<b class='flag-5'>可變</b>對象真的不<b class='flag-5'>可變</b>嗎

    python變量命名規則

    Python是一種高級編程語言,廣泛應用于軟件開發、數據分析和科學計算等領域。在Python中,變量是用來存儲數據的容器,它們具有名稱以及與之關聯的值。然而,變量的命名并不是隨意的,而
    的頭像 發表于 11-23 15:44 ?1027次閱讀