Pycharm(六):可變與不可變類型

一、引用

在java中既有值傳遞,也有引用傳遞,我們思考一下在python中值的傳遞方式是哪種類型呢?

答案是引用傳遞

概述:

        Python中存儲變量是需要占用內存空間的,為了更好地管理這些空間,每塊空間都是有自己的地址值的。

格式:

        id(變量名/值)           可以查看變量/值在內存中的地址。

細節:

        Python中的 = 是引用傳遞,即:把等號右邊的變量(值)地址值賦給  左邊的變量。

記憶:

        1.可變和不可變類型的劃分依據:

        在不改變地址值的情況下,其元素值是否可以發生改變;如果可以發生改變就是可變類型,不可以發生改變就是不可變類型。

        2.可變和不可變類型的具體劃分如下:

        可變類型:列表,字典,集合;

        不可變類型:整型,浮點型,布爾類型,字符串類型,元組類型。

示例1.觀察如下代碼中在內存中有幾個10

# 需求1: 觀察如下的代碼, 分析: 內存中到底有幾個10.
a = 10
b = a
c = aprint(a, b, c)  # 10, 10, 10# 觀察 a, b, c的地址值.
print(id(a))    # 140726997170904
print(id(b))    # 140726997170904
print(id(c))    # 140726997170904
print('-' * 30)

 運行結果:

根據結果,我們可以分析得出a,b,c三個變量都指向同一個地址,這個地址內存儲的是10.

示例2.演示不可變類型修改值之后地址的變化

# 需求2: 演示 不可變類型.    整型
a = 100
print(f'變量a的內容: {a}')       # 100
print(f'變量a的地址: {id(a)}')   # 0x01, 140727005431320# 修改變量 a 的值.
a = 200
print(f'變量a的內容: {a}')       # 200
print(f'變量a的地址: {id(a)}')   # 0x02, 140727005434520
print('-' * 30)

運行結果:

可以看出,對于不可變類型,修改值之后會地址值會發生改變,變量a原來指向100對應的地址,修改值之后,地址對應也發生改變,指向200對應的地址。

示例3.演示

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902898.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902898.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902898.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態ip與靜態ip的概念、區別、應用場景

動態ip與靜態ip的區別 前言 一、IP地址的概念和作用 1.1、IP地址的定義 1.2、IP地址的作用 二、動態IP和靜態IP的區別 2.1、動態IP和靜態IP的定義 2.2、動態IP和靜態IP的特點 2.3、動態IP和靜態IP的優缺點比較 三、動態IP和靜態IP的應用場景 3.1. 動態IP的應用場景 3.2. 靜態IP…

六個能夠白嫖學習資料的網站

一、咖喱君的資源庫 地址:https://flowus.cn/galijun/share/de0f6d2f-df17-4075-86ed-ebead0394a77 這是一個學習資料/學習網站分享平臺,包含了英語、法語、德語、韓語、日語、泰語等幾十種外國語言的學習資料及平臺,這個網站的優勢就是外語…

[貪心_7] 最優除法 | 跳躍游戲 II | 加油站

目錄 1.最優除法 題解 2.跳躍游戲 II 題解 3.加油站 題解 利用 單調性,可以實現 區間跳躍 1.最優除法 鏈接: 553. 最優除法 給定一正整數數組 nums,nums 中的相鄰整數將進行浮點除法。 例如,nums [2,3,4],我…

“Daz to Unreal”將 G8 角色(包括表情)從 daz3d 導入到 UE5。在 UE5 中,我發現使用某個表情并與閉眼混合后,上眼瞼出現了問題

1) Bake & Export Corrective Morphs from Daz before you go into UE5 1) 在進入 UE5 之前,從 Daz 烘焙并導出修正型變形 In Daz Studio 在 Daz Studio 中 Load your G8 head, dial in the exact mix (e.g. Smile 1.0 Eyes Closed 1.0). 加載你的 G8 頭部&am…

【機器學習速記】面試重點/期末考試

自用,有錯誤歡迎評論區指出 目錄 一、機器學習基礎概念 二、機器學習類型分類 三、經典算法與原理 1. 線性模型 2. 決策樹 3. SVM(支持向量機) 4. K近鄰(KNN) 5. 貝葉斯分類 6. 集成學習 四、模型評價指標 五、模型泛化能力與調參 六、特征工程與數據預處理 七、維…

Redis 原子操作

文章目錄 前言? 一、什么是「原子操作」?🔍 二、怎么判斷一個操作是否原子?🧪 三、項目中的原子 vs 非原子案例(秒殺系統)? 原子性(OK)? 非原子性(高風險)…

中建海龍MiC模塊化建筑賦能“好房子”新范式

中國建筑國際集團旗下中建海龍科技有限公司(以下簡稱“中建海龍”)以科技創新為引擎,持續推動建筑行業向工業化、數字化、綠色化轉型升級。近期,其自主研發的模塊化集成建筑(MiC)技術成功入選中國建筑首批產…

DDL自聯表

自聯表 create table t_menu (id int AUTO_INCREMENT,name varchar(20),image varchar(20),url varchar(20),pid varchar(20),constraint pk_id primary key(id),constraint fk_id foreign key(pid) references t_menu(id) );

【版本控制】SVN + TortoiseSVN版本管理實用教程(附安裝+開發常用操作)

摘要: 本文將帶你從零開始掌握 SVN 版本控制系統,結合 TortoiseSVN 圖形客戶端工具,深入學習包括安裝、檢出、提交、更新、回滾、沖突解決等常用開發操作,快速上手團隊協作! 🧩 什么是 SVN? SV…

C語言實現對哈希表的操作:創建哈希表與擴容哈希表

一. 簡介 前面文章簡單了解了哈希表 這種數據結構,文章如下: 什么是哈希表-CSDN博客 本文來學習一下哈希表,具體學習一下C語言實現對哈希表的簡單實現。 二. C語言實現對哈希表的操作 1. 哈希表 哈希表(Hash Table&#xff…

UML 活動圖詳解:以機票預訂系統用戶注冊為例

目錄 一、UML 活動圖的基本元素 二、題目原型 三、機票預訂系統用戶注冊的活動圖分析 四、活動圖繪畫 五、總結 在軟件開發過程中,UML(統一建模語言)活動圖是一種非常重要的工具,它能夠幫助我們清晰地理解系統的業務流程和工…

FX10(CYUSB4014)USB3.2(10Gbps)開發筆記分享(1):硬件設計與開發環境搭建

作者:Hello,Panda 大家早上好,中午好,下午好,晚上好,熊貓君又來了。這次計劃做一個連載,大概6期左右,主要介紹英飛凌最新的FX5/10/20的器件應用。目前,熊貓君手上調試的…

前端項目部署

一、本地服務器部署: 解決頁面刷新404問題: 1、使用 hash 模式 2、當路徑不匹配的時候,直接訪問 index.html 3、使用插件:connect-history-api-fallback https://www.npmjs.com/package/connect-history-api-fallback npm ins…

觀測云數據在Grafana展示的最佳實踐

背景 在當今的數據驅動世界中,組織越來越依賴于實時數據來做出決策。數據可視化是理解和分析這些數據的關鍵工具,它幫助用戶將復雜的數據集轉換成直觀的圖表和儀表板,從而更容易識別趨勢、模式和異常。Grafana,作為一個功能強大的…

架構師面試(三十六):廣播消息

題目 在像 IM、短視頻、游戲等實時在線類的業務系統中,一般會有【廣播消息】業務,這類業務具有瞬時高流量的特點。 在對【廣播消息】業務實現時通常需要同時寫 “系統消息庫” 和更新用戶的 “聯系人庫” 的操作,用戶的聯系人表中會有未讀數…

大模型微調 - transformer架構

什么是Transformer Transformer 架構是由 Vaswani 等人在 2017 年提出的一種深度學習模型架構,首次發表于論文《Attention is All You Need》中 Transformer 的結構 Transformer 編碼器(Encoder) 解碼器(Decoder) …

基于華為云 ModelArts 的在線服務應用開發(Requests 模塊)

基于華為云 ModelArts 的在線服務應用開發(Requests 模塊) 一、本節目標 了解并掌握 Requests 模塊的特點與用法學會通過 PythonRequests 訪問華為云 ModelArts 在線推理服務熟悉 JSON 模塊在 Python 中的數據序列化與反序列化掌握 Python 文件 I/O 的基…

python pymysql如何保證數據庫更新成功

python pymysql如何保證數據庫更新成功 在使用Python的PyMySQL庫與MySQL數據庫交互時,確保數據庫更新操作成功執行,可以通過以下幾種方式: 使用execute()和commit() 當執行一個更新(UPDATE)、插入(INSERT)或刪除(DELETE)操作時,你需要調用execute()方法來執行SQL語句…

【數據可視化-30】Netflix電影和電視節目數據集可視化分析

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

【深度強化學習 DRL 快速實踐】逆向強化學習算法 (IRL)

Inverse Reinforcement Learning (IRL) 詳解 什么是 Inverse Reinforcement Learning? 在傳統的強化學習 (Reinforcement Learning, RL) 中,獎勵函數是已知的,智能體的任務是學習一個策略來最大化獎勵 而在逆向強化學習 (Inverse Reinforc…