[GN] Python3基本數據類型 -- 與C的差異


Python3 面向對象

文章目錄

    • Python3的基本數據類型
      • 6個標準的數據類型
      • Numbers
        • String
        • List
        • tuple
        • Sets
        • Dictionaries
    • Python運算符
        • 邏輯 運算符
        • 成員運算符
        • 身份運算符
    • Python3 數字
    • Python3 序列
        • 序列切片
        • 序列相加
        • 序列相乘
        • 序列相關內置函數
    • Python3 列表
        • 訪問列表的值
        • 更新列表
        • 刪除列表元素
        • 拼接列表
        • 嵌套列表
        • 列表函數方法
    • Python3 元組
        • 訪問元組的值
        • 修改元組
        • 刪除元組元素
        • 元組內置函數
    • Python3 字典
        • 訪問字典的值
        • 修改字典
        • 刪除字典元素
        • 字典內置函數
    • Python3 集合
        • 集合的基本操作
        • 集合內置函數


Python3的基本數據類型

6個標準的數據類型

Numbers(數字); String(字符串); List(列表); Tuple(元組); Set(集合); Dictionaries(字典)

Numbers

  1. 類型

int
float
boll
complex(復數) 4+3j

  1. 數值運算

2//4 除法 一個整數

2/4 除法 一個浮點數

2**5 乘方

String
  1. \ 轉義特殊字符
>>> print('C:\some\name')
C:\some
ame
>>> print(r'C:\some\name')
C:\some\name
  1. 可以使用+ *連接
>>> print('str'+'ing', 'my'*3)
string mymymy
  1. 可以對字符串切邊(前閉后開)
>>> word = 'ilovepython'
>>> word[1:5]
'love'
>>> word[:]
'ilovepython'
>>> word[5:]
'python'
>>> word[-10:-6]
'love'
  1. 與C字符串不同,Py字符串不能改變
word[0] = 'm'  #這是錯誤的
List
  1. 寫在方括號之間,列表元素類型可以不同
>>> a = ['him', 25, 100, 'her']
>>> print(a)
['him', 25, 100, 'her']
  1. 可以使用+ 連接
>>> a = [1, 2, 3, 4, 5]
>>> a + [6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
tuple
  1. 寫在圓括號之間,與列表相似,不同在于元組的元素不能改變
>>> a = (1991, 2014, 'physics', 'math')
>>> print(a, type(a), len(a))
(1991, 2014, 'physics', 'math') <class 'tuple'> 4
  1. 構造包含0或1個元素的元組的特殊語法規則
tup1 = () # 空元組
tup2 = (20,) # 一個元素,需要在元素后添加逗號
  1. 元組也可以使用+ 操作符
Sets
  1. 是一個無序不重復元素的集合(可用來成員關系測試和消除重復元素);可以使用大括號 或者 set()函數創建集合
>>> student = ()     #創建空集合
>>> student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
>>> print(student)   # 重復的元素被自動去掉
{'Jim', 'Jack', 'Mary', 'Tom', 'Rose'}
>>> 'Rose' in student  # membership testing(成員測試)
True
>>> # set可以進行集合運算
... 
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'b', 'c', 'd', 'r'}
>>> a - b     # a和b的差集
{'b', 'd', 'r'}
>>> a | b     # a和b的并集
{'l', 'm', 'a', 'b', 'c', 'd', 'z', 'r'}
>>> a & b     # a和b的交集
{'a', 'c'}
>>> a ^ b     # a和b中不同時存在的元素
{'l', 'm', 'b', 'd', 'z', 'r'}
Dictionaries
  1. 字典是一種映射類型,他是一個無序的鍵值對集合。 關鍵字key必須是不可變類型(也就是說list和包含可變類型的tuple不能是關鍵字)
>>> dic = {}  # 創建空字典
>>> tel = {'Jack':1557, 'Tom':1320, 'Rose':1886}
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Rose': 1886}
>>> tel['Jack']   # 主要的操作:通過key查詢
1557
>>> del tel['Rose']  # 刪除一個鍵值對
>>> tel['Mary'] = 4127  # 添加一個鍵值對
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Mary': 4127}
>>> list(tel.keys())  # 返回所有key組成的list
['Tom', 'Jack', 'Mary']
>>> sorted(tel.keys()) # 按key排序
['Jack', 'Mary', 'Tom']
>>> 'Tom' in tel       # 成員測試
True
>>> 'Mary' not in tel  # 成員測試
False
  1. 構造函數可以直接從鍵值對swquence中構造字典
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'jack': 4098, 'sape': 4139, 'guido': 4127}>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}>>> dict(sape=4139, guido=4127, jack=4098)
{'jack': 4098, 'sape': 4139, 'guido': 4127}

Python運算符

邏輯 運算符

and; or; not

成員運算符

in; not in

身份運算符

is 兩個標識符是不是引用自一個對象

is not 兩個標識符不是引用自不同一個對象

Python3 數字

??????
在這里插入圖片描述

Python3 序列

序列類型包括 字符串、列表、元組、集合和字典。(集合和字典不支持索引、切片、相加和相乘操作)

序列切片

訪問一定范圍內的元素

sname[start : end : step]
  • sname: 序列名稱
  • start: 索引開始位置(包括該位置
  • end: 結束索引位置(不包括該位置)
  • step:隔幾個存儲位置
str=""
#取索引區間為[0,2]之間(不包括索引2處的字符)的字符串
print(str[:2])
#隔 1 個字符取一個字符,區間是整個字符串
print(str[::2])
#取整個字符串,此時 [] 中只需一個冒號即可
print(str[:])
序列相加
序列相乘
序列相關內置函數

在這里插入圖片描述

Python3 列表

列表的數據項不需要有相同類型

list1 = ['Google', '', 1997, 2000]
訪問列表的值
索引013
負索引-4-3-1
‘Google’‘’2000
更新列表
list1[2] = "1998" #直接對想要修改的數據項賦上一個新值即可修改該數據項
print ("list1的第三個元素為: ", list1[2])
list1.append(2021) #append()可以在列表后追加一項列表項
print ("追加列表項后的list1: ", list1)list1的第三個元素為:  1998
追加列表項后的list1:  ['Google', '', '1998', 2000, 2021]
刪除列表元素
  1. del刪除
del list1[0] #del可以刪掉一個元素
print ("刪除列表項后的list1: ", list1)刪除列表項后的list1:  ['', 1997, 2000]
  1. remove刪除
list1 = ['Google', '', 'Taobao', 'Baidu']
list1.remove('Taobao') # remove可以按值查找列表中的元素并刪除
print ("列表現在為 : ", list1)
list1.remove('Baidu')
print ("列表現在為 : ", list1)列表現在為 :  ['Google', '', 'Baidu']
列表現在為 :  ['Google', '']
拼接列表

+號直接

嵌套列表
>>>a = ['a', 'b', 'c'] 
>>> n = [1, 2, 3] 
>>> x = [a, n] 
>>> x [['a', 'b', 'c'], [1, 2, 3]] 
>>> x[0] ['a', 'b', 'c'] 
>>> x[0][1] 'b'
列表函數方法

在這里插入圖片描述

在這里插入圖片描述

Python3 元組

元組使用小括號(); 列表使用方括號[]

list1 = ('Google', '', 1997, 2000)
訪問元組的值
索引013
負索引-4-3-1
‘Google’‘’2000
修改元組

元組中的元素值不允許修改。但可以連接

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')# 以下修改元組元素操作是非法的。
# tup1[0] = 100# 創建一個新的元組
tup3 = tup1 + tup2;
print (tup3)
刪除元組元素

元組中的元素值不允許刪除。但可以使用del刪除整個元組

  1. del刪除
tup = ('Google', '', 1997, 2020)print (tup)
del tup;
元組內置函數

在這里插入圖片描述

Python3 字典

dict = {key1 : value1, key2 : value2 }

鍵是唯一的,不可變的(如字符串,數字,元組)

訪問字典的值
dict = {'Name': '', 'Age': 7, 'Class': 'First'}print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
修改字典
dict = {'Name': '', 'Age': 7, 'Class': 'First'}dict['Age'] = 8;               # 更新 Age
dict['School'] = "教程"  # 添加信息
刪除字典元素
dict = {'Name': '', 'Age': 7, 'Class': 'First'}del dict['Name'] # 刪除鍵 'Name'
dict.clear()     # 刪除字典
del dict         # 刪除字典print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
字典內置函數

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

Python3 集合

集合是一個無序的不重復元素序列

創建可以使用{} 或者 set();但創建空的必須是set();

  1. 集合創建
parame = {value01,value02,...}
或者
set(value)
  1. 集合運算
a = set('abracadabra')
b = set('alacazam')print(a)
print(b)print(a-b)print(a|b)print(a&b)print(a^b){'b', 'd', 'a', 'c', 'r'}
{'l', 'z', 'm', 'a', 'c'}
{'r', 'd', 'b'}
{'l', 'z', 'b', 'm', 'd', 'a', 'c', 'r'}
{'c', 'a'}
{'l', 'z', 'b', 'm', 'r', 'd'}
集合的基本操作
  1. 添加元素
s.add(x)
s.update( x ) #x可以是多個thisset = set(("Google", "", "Taobao"))
thisset.update({1,3})
print(thisset)
thisset.update([1,4],[5,6])  
print(thisset){1, 3, '', 'Taobao', 'Google'}
{1, 3, 4, 5, 6, '', 'Taobao', 'Google'}
  1. 移除元素
s.remove( x )  #元素不存在會發生錯誤
s.discard( x ) #元素不存在不會發生錯誤
  1. 計算集合元素個數
len(s)
  1. 清空集合
s.clear()
  1. 判斷是否存在
x in s
集合內置函數

在這里插入圖片描述

在這里插入圖片描述


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

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

相關文章

MCP over MQTT:EMQX 開啟物聯網 Agentic 時代

前言 隨著 DeepSeek 等大語言模型&#xff08;LLM&#xff09;的廣泛應用&#xff0c;如何找到合適的場景&#xff0c;并基于這些大模型構建服務于各行各業的智能體成為關鍵課題。在社區中&#xff0c;支持智能體開發的基礎設施和工具層出不窮&#xff0c;其中&#xff0c;Ant…

AI助力高效PPT制作:從內容生成到設計優化

隨著人工智能技術的不斷發展&#xff0c;AI在各個領域的應用日益普及&#xff0c;尤其是在文檔和演示文稿的創建過程中。PowerPoint&#xff08;PPT&#xff09;作為最常用的演示工具之一&#xff0c;借助AI的技術手段&#xff0c;可以極大地提高制作效率并提升最終呈現效果。在…

學透Spring Boot — 009. Spring Boot的四種 Http 客戶端

目錄 常見的HttpClient Spring 提供的HttpClient RestTemplate Spring 提供的模板類 XXXTemplate RestTemplate的使用 RestTemplate的使用技巧 RestTemplate的問題 RestClient RestClinet的基本使用 RestClient的自動配置 RestClient 序列化對象 異常處理 onStatus …

leetcode117 填充每個節點的下一個右側節點指針2

LeetCode 116 和 117 都是關于填充二叉樹節點的 next 指針的問題&#xff0c;但它們的區別在于 樹的類型 不同&#xff0c;117與 116 題類似&#xff0c;但給定的樹是 普通二叉樹&#xff08;不一定完全填充&#xff09;&#xff0c;即某些節點可能缺少左或右子節點。 樹的結構…

軟考系統架構師 — 4 嵌入式軟件

目錄 4.1 考點分析 4.2 嵌入式微處理器 4.2.1嵌入式微處理器體系結構 5.2.2 嵌入式微處理器分類 4.2.3 多核處理器 4.3 嵌入式軟件 4.4 嵌入式系統 4.4.1 嵌入式系統的組成 4.4.2 嵌入式系統分類 4.4.3 嵌入式數據庫系統DBMS 4.4.4 嵌入式操作系統OS 4.4.5 嵌入式實…

RocketMQ 中的 ProducerManager 組件剖析

一、引言 在分布式系統的消息傳遞領域&#xff0c;RocketMQ 以其高性能、高可用性和強大的擴展性脫穎而出。ProducerManager 作為 RocketMQ 中的一個關鍵組件&#xff0c;在消息生產環節發揮著至關重要的作用。它負責管理消息生產者&#xff08;Producer&#xff09;的生命周期…

k8s進階之路:本地集群環境搭建

概述 文章將帶領大家搭建一個 master 節點&#xff0c;兩個 node 節點的 k8s 集群&#xff0c;容器基于 docker&#xff0c;k8s 版本 v1.32。 一、系統安裝 安裝之前請大家使用虛擬機將 ubuntu24.04 系統安裝完畢&#xff0c;我是基于 mac m1 的系統進行安裝的&#xff0c;所…

深度學習數據集劃分比例多少合適

在機器學習和深度學習中&#xff0c;測試集的劃分比例需要根據數據量、任務類型和領域需求靈活調整。 1. 常規劃分比例 通用場景 訓練集 : 驗證集 : 測試集 60% : 20% : 20% 適用于大多數中等規模數據集&#xff08;如數萬到數十萬樣本&#xff09;&#xff0c;平衡了訓練數…

【TS學習】(15)分布式條件特性

在 TypeScript 中&#xff0c;分布式條件類型&#xff08;Distributive Conditional Types&#xff09; 是一種特殊的行為&#xff0c;發生在條件類型作用于裸類型參數&#xff08;Naked Type Parameter&#xff09; 時。這種特性使得條件類型可以“分布”到聯合類型的每個成員…

NSSCTF [HGAME 2023 week1]simple_shellcode

3488.[HGAME 2023 week1]simple_shellcode 手寫read函數shellcode和orw [HGAME 2023 week1]simple_shellcode (1) motalymotaly-VMware-Virtual-Platform:~/桌面$ file vuln vuln: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpret…

PostgreSQL的擴展(extensions)-常用的擴展-pg_dirtyread

PostgreSQL的擴展&#xff08;extensions&#xff09;-常用的擴展-pg_dirtyread pg_dirtyread 是 PostgreSQL 的一個特殊擴展&#xff0c;它允許讀取已被刪除但尚未被 VACUUM 清理的數據行&#xff0c;是數據恢復的重要工具。 原理&#xff1a; pg_dirtyread 通過直接訪問表的…

linux3 mkdir rmdir rm cp touch ls -d /*/

Linux 系統的初始目錄結構遵循 FHS&#xff08;Filesystem Hierarchy Standard&#xff0c;文件系統層次標準&#xff09;&#xff0c;定義了每個目錄的核心功能和存儲內容。以下是 Linux 系統初始安裝后的主要目錄及其作用&#xff1a; 1. 核心系統目錄 目錄用途典型內容示例…

Bazel中的Symbol, Rule, Macro, Target, Provider, Aspect 等概念

學習Bazel &#xff0c;就要學習Bazel 的規則定義&#xff0c; 弄清各個概念是重要的一個步驟。 在 Bazel 規則定義中&#xff0c;Symbol、Rule 和 Macro 是常見的概念。除此之外&#xff0c;Bazel 還有 Target、Provider、Aspect Repository、Package、 Workspace、 Configura…

深入探究 Hive 中的 MAP 類型:特點、創建與應用

摘要 在大數據處理領域,Hive 作為一個基于 Hadoop 的數據倉庫基礎設施,提供了方便的數據存儲和分析功能。Hive 中的 MAP 類型是一種強大的數據類型,它允許用戶以鍵值對的形式存儲和操作數據。本文將深入探討 Hive 中 MAP 類型的特點,詳細介紹如何創建含有 MAP 類型字段的表…

基于Java的區域化智慧養老系統(源碼+lw+部署文檔+講解),源碼可白嫖!

摘 要 時代在飛速進步&#xff0c;每個行業都在努力發展現在先進技術&#xff0c;通過這些先進的技術來提高自己的水平和優勢&#xff0c;區域化智慧養老系統當然不能排除在外。區域化智慧養老系統是在實際應用和軟件工程的開發原理之上&#xff0c;運用Java語言、JSP技術以及…

關于JVM和OS中的指令重排以及JIT優化

關于JVM和OS中的指令重排以及JIT優化 前言&#xff1a; 這東西應該很重要才對&#xff0c;可是大多數博客都是以訛傳訛&#xff0c;全是錯誤&#xff0c;尤其是JVM會對字節碼進行重排都出來了&#xff0c;明明自己測一測就出來的東西&#xff0c;寫出來誤人子弟… 研究了兩天&…

VS2022遠程調試Linux程序

一、 1、VS2022安裝參考 VS Studio2022安裝教程&#xff08;保姆級教程&#xff09;_visual studio 2022-CSDN博客 注意&#xff1a;勾選的時候&#xff0c;要勾選下方的選項&#xff0c;才能調試Linux環境下運行的程序&#xff01; 2、VS2022遠程調試Linux程序測試 原文參…

WPF設計學習記錄滴滴滴4

<Button x:Name"btn"Content"退出"Width" 100"Height"25"Click"btn_Click" IsDefault"True"/> <Button x:Name"btn" <!-- 控件標識&#xff1a;定義按鈕的實例名稱為"btn&…

JVM 有哪些垃圾回收器

垃圾收集算法 標記-復制算法(Copying): 將可用內存按容量劃分為兩個區域,每次只使用其中的一塊。當這一塊的內存用完了,就將還存活著的對象復制到另外一塊上面, 然后再把已使用過的內存空間一次清理掉。 標記-清除算法(Mark-Sweep): 算法分為“標記” 和“清除”兩個…