【Python 變量類型】

Python 是一種動態類型語言,變量類型在運行時自動確定,無需顯式聲明。以下是 Python 中核心變量類型的分類與用法詳解:


一、基本數據類型

1. 數值類型
  • 整數 (int)
    支持正負數、零和二進制/八進制/十六進制表示:

    a = 42
    b = 0o52  # 八進制 => 42
    c = 0x2A  # 十六進制 => 42
    
  • 浮點數 (float)
    支持科學計數法:

    pi = 3.14159
    big_num = 1.2e6  # 1200000.0
    
  • 復數 (complex)
    由實部和虛部組成:

    c = 3 + 4j
    
2. 布爾型 (bool)
  • 只有 TrueFalse 兩個值
  • 邏輯運算結果:
    is_valid = (5 > 3) and (10 != 8)  # True
    
3. 字符串 (str)
  • 支持單引號、雙引號、三引號:
    s1 = 'Hello'
    s2 = "World"
    s3 = '''Multi-line
    string'''
    
  • 不可變對象,常用操作:
    text = "Python"
    print(text[0])    # 'P' (索引)
    print(text[1:4])  # 'yth' (切片)
    print("thon" in text)  # True (成員檢查)
    

二、復合數據類型

1. 列表 (list)
  • 有序、可變、允許重復元素:
    numbers = [1, 2, 3, 2]
    numbers.append(4)    # 末尾添加
    numbers[0] = 100     # 修改元素
    
2. 元組 (tuple)
  • 有序、不可變、允許重復元素:
    point = (3, 4)
    x, y = point  # 解包賦值
    
3. 字典 (dict)
  • 鍵值對存儲,鍵唯一且不可變:
    person = {"name": "Alice","age": 30,"is_student": False
    }
    print(person["name"])  # 訪問值
    person["city"] = "Paris"  # 添加新鍵值對
    
4. 集合 (set)
  • 無序、唯一元素集合:
    unique_nums = {1, 2, 2, 3}  # 自動去重 => {1, 2, 3}
    

三、特殊類型

1. None 類型
  • 表示空值或缺失值:
    result = None  # 初始未定義狀態
    
2. 字節類型
  • bytes:不可變字節序列
  • bytearray:可變字節序列
    data = b'Hello'  # bytes
    mutable_data = bytearray(b'World')
    
3. 函數/方法
  • 函數可作為一等公民傳遞:
    def add(a, b):return a + b
    func_ref = add  # 變量指向函數
    print(func_ref(3, 5))  # 8
    

四、類型操作

1. 類型檢查
  • type() 返回具體類型:
    print(type(42))  # <class 'int'>
    
  • isinstance() 檢查繼承關系:
    print(isinstance(3.14, float))  # True
    
2. 類型轉換
  • 顯式轉換函數:
    num_str = "123"
    num = int(num_str)  # 字符串轉整數
    

五、動態類型特性

Python 變量可隨時改變類型:

var = 42          # int 類型
var = "Python"    # 變為 str 類型
var = [1, 2, 3]   # 變為 list 類型

六、類型層級關系

object
├── int
├── float
├── complex
├── str
├── bool
├── list
├── tuple
├── dict
├── set
├── bytes
├── bytearray
├── NoneType
└── function

理解變量類型是編寫高效 Python 代碼的基礎,合理選擇數據類型可優化內存使用和執行效率。對于復雜場景,可結合 typing 模塊進行類型注解(Python 3.5+)。

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

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

相關文章

Python基礎:類的深拷貝與淺拷貝-->with語句的使用及三個庫:matplotlib基本畫圖-->pandas之Series創建

一.類的深拷貝與淺拷貝 class CPU():pass class Disk():passclass Computer():#計算機由CPU和硬盤組成def __init__(self):self.cpu CPU()self.disk Disk()cpu CPU()#創建一個CPU對象 disk Disk()#創建一個硬盤對象#創建一個計算機對象 com Computer(cpu,disk) #變量&…

【SSM-SpringMVC(二)】Spring接入Web環境!本篇開始研究SpringMVC的使用!SpringMVC數據響應和獲取請求數據

SpringMVC的數據響應方式 頁面跳轉 直接返回字符串通過ModelAndView對象返回 回寫數據 直接返回字符串返回對象或集合 頁面跳轉&#xff1a; 返回字符串方式 直接返回字符串&#xff1a;此種方式會將返回的字符串與視圖解析器的前后綴拼接后跳轉 RequestMapping("/con&…

閱文集團C++面試題及參考答案

目錄 能否不使用鎖保證多線程安全? 面向對象的三個特性是什么?請分別解釋。 構造函數和析構函數能否被繼承? C++ 中函數重載是如何實現的? C 語言中是否支持函數重載? 什么是左值和右值?請舉例說明。 C++ 中子類的構造和析構順序是怎樣的? C++ 中虛函數表的變化過…

【親測有效】如何清空但不刪除GitHub倉庫中的所有文件(main分支)

如何清空但不刪除GitHub倉庫中的所有文件&#xff08;main分支&#xff09; 在項目開發過程中&#xff0c;有時我們需要清空GitHub倉庫中的所有文件&#xff0c;同時保留倉庫本身。這種情況常見于項目重構、代碼重寫或者需要重新開始一個項目時。本文將介紹一種有效的方法來清…

前端EXCEL插件,智表ZCELL產品V3.0 版本發布,底層采用canvas全部重構,功能大幅擴展,性能極致提升,滿足千萬級單元格加載

本次更新是底層全部重構&#xff0c;按照現代瀏覽器要求&#xff0c;采用canvas方式進行了重構&#xff0c;預留了將來擴展空間&#xff0c;特別是在大數據量性能提升方面有了較大提升&#xff0c;可以滿足千萬級單元格加載&#xff0c;歡迎大家體驗使用。 體驗地址&#xff1…

3DGS-to-PC:3DGS模型一鍵絲滑轉 點云 or Mesh 【Ubuntu 20.04】【2025最新版!!】

一、引言 3D高斯潑濺(3DGS)是一種新興的三維場景表示方法&#xff0c;可以生成高質量的場景重建結果。然而&#xff0c;要查看這些重建場景&#xff0c;需要特殊的高斯渲染器。大多數3D處理軟件并不兼容3D高斯分布模型&#xff0c;但它們通常都兼容點云文件。 3DGS-to-PC項目提…

OpenHarmony 以太網卡熱插拔事件接口無效

目錄 1.背景 2.解決方案 1.背景 在OpenHarmony中調用以太網熱插拔時間,發現熱插拔沒有任何回調,如下接口 import { ethernet } from @kit.NetworkKit;ethernet.on(interfaceStateChange, (data: object) => {console.log(on interfaceSharingStateChange: + JSON.…

C++ 跨平臺開發挑戰與深度解決方案:從架構設計到實戰優化

C 憑借其高性能與底層控制能力&#xff0c;在游戲引擎、嵌入式系統、工業軟件等領域占據核心地位。然而&#xff0c;跨平臺開發過程中需應對硬件架構多樣性、操作系統差異性、編譯工具鏈碎片化等復雜問題。本文將從底層架構到上層應用&#xff0c;系統性剖析 C 跨平臺開發的核心…

什么是 ANR 如何避免它

一、什么是 ANR&#xff1f; ANR&#xff08;Application Not Responding&#xff09; 是 Android 系統在應用程序主線程&#xff08;UI 線程&#xff09;被阻塞超過一定時間后觸發的錯誤機制。此時系統會彈出一個對話框提示用戶“應用無響應”&#xff0c;用戶可以選擇等待或強…

數據結構(六)——樹和二叉樹

一、樹和二叉樹的定義與存儲 1.樹的定義 樹是一種非線性的數據結構&#xff0c;它是由n個有限結點組成有層次關系的集合 樹具有以下特點&#xff1a; &#xff08;1&#xff09;每個結點具有0個或多個子結點 &#xff08;2&#xff09;每個子結點只有一個父結點 &#xff…

DICOM 網絡服務實現:醫學影像傳輸與管理的技術實踐

?? 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,10年以上C/C++, C#, Java等多種編程語言開發經驗,擁有高級工程師證書;擅長C/C++、C#等開發語言,熟悉Java常用開發技術,能熟練應用常用數據庫SQL server,Oracle,mysql,postgresql等進行開發應用…

TongWeb7.0常用-D參數說明

Web容器相關啟動參數配置 屬性 含義 -Dtongweb.restart.interval 設置宕機后重啟的時間間隔&#xff0c;以秒為單位。如果不設置這個參數&#xff0c;默認為1秒 -Dmonitor.abnormal.restart 設置服務器非正常狀態時是否重啟&#xff0c;如果不設置這個參數或者參數值不為…

軟件架構評估方法全面解析

介紹 在軟件開發過程中&#xff0c;架構設計的好壞直接影響系統的可維護性、可擴展性和性能。因此&#xff0c;軟件架構評估&#xff08;Software Architecture Evaluation&#xff09;成為確保架構質量的關鍵步驟。本文將介紹幾種主流的架構評估方法&#xff0c;包括ATAM、SA…

我開源了一個免費在線工具!UIED Tools

UIED Tools - 免費在線工具集合 最近更新&#xff1a;修改了文檔說明&#xff0c;優化了項目結構介紹 這是設計師轉開發的第一個開源項目&#xff0c;bug和代碼規范可能有些欠缺。 這是一個功能豐富的免費在線工具集合網站&#xff0c;集成了多種實用工具&#xff0c;包括 AI …

【vue】全局組件及組件模塊抽離

一、全局組件 只要是實例化過的區域都可以使用 Vue.component("組件名",{ template: 內容} ) 二、組件模塊抽離 抽離就是把template的內容寫到body里面&#xff0c;然后建立id寫到變量下的template里&#xff0c;id變量寫到component里 body{ template&#xff1a; …

深入理解 iOS 開發中的 `use_frameworks!`

在使用 CocoaPods 管理 iOS 項目依賴時&#xff0c;開發者經常會在 Podfile 文件中看到一個配置選項&#xff1a;use_frameworks!。本文將詳細介紹這個配置選項的含義&#xff0c;以及如何決定是否在項目中使用它。 一、什么是 use_frameworks! 在 CocoaPods 中引入第三方庫時…

《Python星球日記》 第57天:LSTM 與 GRU

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、LSTM 的門控機制1. LSTM 結構概述2. 遺忘門(Forget Gate)3. 輸入門(Input Gate)4. 輸出門(Output Gate)5. 記憶單元更新過程二、GRU 的簡化…

Java SE所需工具與常見類型和運算符介紹

1.Java SE所需工具 1.1 JDK JDK全稱為Java Develepment Kit(Java開發者工具包&#xff09;&#xff0c;包括了Java運行環境JRE&#xff08;Java Runtime Envirnment&#xff09;、一堆Java工具&#xff08;javac/java/jdb等&#xff09;和Java基礎的類庫&#xff08;即Java A…

QT6.8安裝教程

官網下載 鏈接&#xff1a; Index of /official_releases/online_installers 這個比較慢 建議去 清華大學開源軟件鏡像站&#xff1a;Index of /qt/archive/online_installers/4.9/ | 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror 根據自己什么系統選擇 點擊打開…

MIT XV6 - 1.3 Lab: Xv6 and Unix utilities - primes

接上文 MIT XV6 - 1.2 Lab: Xv6 and Unix utilities - pingpong primes 繼續實驗&#xff0c;實驗介紹和要求如下 (原文鏈接 譯文鏈接) : Write a concurrent prime sieve program for xv6 using pipes and the design illustrated in the picture halfway down this page and…