Python基礎-02數據類型

来源:https://www.cnblogs.com/surpassme/archive/2020/05/21/12927492.html
-Advertisement-
Play Games

2.Python數據類型 對於任何一種編程語言的學習,需要打好入門的基礎知識,在Python中常見的基礎知識有 基本數據類型 、 條件語句 、 迴圈語句 和 函數 ,更深層次需要掌握面向對象的知識。今天我們先來瞭解學習一下基礎知識,在Python常見的基本數據類型如下所示: 2.1 基本數據類型 2 ...


2.Python數據類型

    對於任何一種編程語言的學習,需要打好入門的基礎知識,在Python中常見的基礎知識有基本數據類型條件語句迴圈語句函數,更深層次需要掌握面向對象的知識。今天我們先來瞭解學習一下基礎知識,在Python常見的基本數據類型如下所示:

020101Python數據類型.png

2.1 基本數據類型

2.1.1 布爾型

    布爾型為(boolean)變數只能取兩個值TrueFalse,如果把布爾變數用於數字計算的話,則1代表True,0代表False。示例代碼如下所示:

t=True
f=False
print(t+f)
print(1+t)
print(3+f)

運行結果如下所示:

1
2
3

    除了直接給變數賦值True和False之外,還可以使用bool(variable)來創建變數,其中variable可以是

  • 基本數據類型:整形、浮點型、布爾型等
  • 容器數據類型:字元、元組、列表、集合和字典等

在Python中None、0、0.0、空值、空列表、空集合、空元組和空字典等都視為False

2.2.1 數字型

    在Python中,常用的數字型都是內置數據類型,可以直接用來進行數學運算。如下所示:

020201數學操作符.png

2.2.1.1 整型

    整型也即我們常說的整數類型的數據,如1,-1等。示例代碼如下所示:

a=100
b=-100
print(type(a),type(b))

運行結果如下所示:

<class 'int'> <class 'int'>
  • 在Python,查看一個數據的類型可以使用函數type()
  • 示例代碼查看數據類型輸出結果為 <class 'int'>,在Python一切皆為對象,因此整型也是一個類,而類就會相應的屬性和方法

在Python中通過dir(variable)和help(variable)可以查看variable對應的屬性和方法,如dir(int)

    示例代碼如下所示:

a=100
print(a.__add__(100))
print(a.__divmod__(3))

運行結果如下所示:

200
(33, 1) # 返回結果為商和餘數
2.2.1.2 浮點型

    浮點型也即我們常見的帶小數位的數字,如1.2,1.0987等,示例代碼如下所示:

a=1
b=1.
c=1.23

print(type(a),type(b),type(c))

運行結果如下所示:

<class 'int'> <class 'float'> <class 'float'>

    在示例代碼中,加一個小數點即可創建一個浮點型數據類型,如果需要對小數位數進行控制,可以使用round()函數,如果對精度要求比較高,可以使用包decimal,預設精度為28位,如下所示:

decimal.getcontext()
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])

2.2容器類數據類型

    在前面介紹的布爾型、數字類型的數據都可以看成是單獨的數據,而這些數據都可以放在一個容器中進而得到一個容器類型的數據。如

  • 字元型:可以看成是由很多個位元組組成的容器。位元組(char)這裡借用其他編程語言,Python中並未有此種數據類型,在其他語言中單個字元的數據稱之為char類型
  • 元組 (tuple)、列表 (list)、字典 (dict) 和集合 (set) 可以看成是一個容器的任何類型變數

2.2.1 字元型

    在Python中使用引號(單引號、雙引號、三引號)括起來的均為字元型,如'abc',"abc","""abc"""。示例代碼如下所示:

a="China"
b='China'
c="""China"""
print(type(a),type(b),type(c))

運行結果如下所示:

<class 'str'> <class 'str'> <class 'str'>

2.2.2 元組

    在Python中元組的定義語法格式如下所示:

   (item1,item2,...,itemn)

 item1,item2,...itemn
  • 這裡推薦第一種寫法
  • 元組兩個關鍵點小括弧逗號

    創建元組示例如下所示:

a=1,2,3
b=(1,2,3)
c=(1,)

常見的元組一般為一維,也可以創建多維元組,如((1,2),(3,4))

2.2.3 字典

    在Python字典的定義格式語法如下所示:

 {
   key1:value1,
   key2:vallue2,
   ...
   keyn:valuen,
 }
  • 字典中每個元素是key:value的形式成對出現
  • 定義字典使用大括弧,每個鍵值對使用冒號進行分隔,不同的鍵值對之間使用逗號分隔
  • 最後一個鍵值對後面的逗號可以省略,一般建議是不要省略,便於後面繼續添加元素

    示例代碼如下所示:

d={
    "beijing":"beijing",
    "shanghai":"shanghai",
    "jiangsu":"nanjing",
    "zhejian":"hangzhou",
    "hubei":"wuhai",
}

2.2.4 集合

    在Python中,集合的定義形式有以下兩種方法:

 {item1,item2,...itemn}

 set(列表或元組)
  • 在使用大括弧定義集合時,裡面的元素不能為空,否則則會變為字典類型
  • 使用set()定義集合時,裡面必須為列表或元組
  • 在集合中是不會出現重覆元素的,因此可以使用集合進行去重

    示例代碼如下所示:

a={1,2,3,4,5}
b=(1,2,3,4,5)
c=set(b)

2.2.5 列表

    在Python中,列表的定義格式如下所示:

 [item1,item2,...,itemn]
  • 列表使用中括弧進行定義,每個元素使用逗號進行分隔

    示例代碼如下所示:

[1,2,3]

2.2.6 索引和切片

  • 索引:代表指定對象所處的位置,在Python中索引從0開始,而不是1
  • 切片:通常形式為startIndex : endIndex : step,這裡需要註意在取值時,是包含startIndex對應的元素,但不包含endIndex對應的元素,step為對應的步長(簡單來講是含前不含後)
  • 索引是獲取單個元素,而切片則是獲取一組元素

索引可以為正值也可以負值,正索引從0開始,從左到右的形式取值,負索引從-1開始,從右向左路的形式取值。

    以上詳細查看如下示意圖:

020206索引與切片.png

對於容器類型的數據類型而言,列表和元組是可以使用索引和切片來進行獲取指定的元素或元素組。

1.切片的通用寫法

 startIndex : endIndex : step
  • 以上這種寫法代表從指定索引startIndex開始,取值到指定索引endIndex,步長為step。但這三個值並不是每次必須要填寫,還可以省略掉

2.切片省略endIndex和step

 startIndex :
  • 以上這種寫法代表從索引startIndex開始,取值到末尾,步長為預設步長1

3.切片省略startIndex和step

 : endIndex
  • 以上這種寫法代表從索引0開始,取值到指定的索引endIndex位置,步長為預設步長1

4.省略step

 startIndex : endIndex
  • 以上這種寫法代表從指定索引startIndex開始,取值到指定的索引endIndex位置,步長為預設步長1

5.省略startIndex和endIndex

 ::step
  • 以上這種寫法代表獲取所有元素,但步長為指定的步長step

6.全部省略

 ::
  • 以上這種寫法代表獲取所有元素且預設步長為1

    示例代碼如下所示:

a=[0,1,2,3,4,5,6,7,8,9]

print(f"[startIndex:endIndex:step] - {a[2:5:1]}")
print(f"[startIndex:] - {a[3:]}")
print(f"[:endIndex] - {a[:5]}")
print(f"[startIndex:endIndex] - {a[2:6]}")
print(f"[:step] - {a[::2]}")
print(f"[::] - {a[::]}")
print(f"[::step] - {a[::-1]}")
print(f"[startIndex:endIndex] - {a[-5:-3]}")

輸出結果如下所示:

[startIndex:endIndex:step] - [2, 3, 4]
[startIndex:] - [3, 4, 5, 6, 7, 8, 9]
[:endIndex] - [0, 1, 2, 3, 4]
[startIndex:endIndex] - [2, 3, 4, 5]
[:step] - [0, 2, 4, 6, 8]
[::] - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[::step] - [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
[startIndex:endIndex] - [5, 6]

本文同步在微信訂閱號上發佈,如各位小伙伴們喜歡我的文章,也可以關註我的微信訂閱號:woaitest,或掃描下麵的二維碼添加關註:
MyQRCode.jpg


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 單頁面應用 概念 什麼是單頁應用呢?單頁應用的全稱是 single-page application,簡稱 SPA,它是一種網站應用的模型,它可以動態重寫當前的頁面來與用戶交互,而不需要重新載入整個頁面。單頁應用的流暢性讓 Web 應用更像桌面端或 Native 應用了。相對於傳統的 Web 應用, ...
  • 解決方法: $('#sub').unbind('click').click(function () { ... }); 每次綁定前先取消上次的綁定。 ...
  • 作者: MarkLin 學習目標: 1. 原生 node 封裝 2. 中間件 3. 路由 Koa 原理 一個 nodejs 的入門級 http 服務代碼如下, koa 的目標是更簡單化、流程化、模塊化的方式實現回調,我們希望可以參照 koa 用如下方式來實現代碼: 所以我們需要創建一個 文件,該文件 ...
  • 仿阿裡雲的錯誤提示 dialog - 您當前的會話已超時,請重新登錄。 ...
  • 輸出Map 申請單號<span>[[${listMain.REQ_CODE}]]</span> 輸出List<Map> <tr th:each="listD, listDStat : ${listDetail}"> <td th:text="${listDStat.count}"></td> <td ...
  • 使用 akka 實現,服務註冊、發現、心跳 消息類: package org.examplecase class RegisterWorkerInfo(id: String, cpu: Int, ram: Int);case class WorkerInfo(val id: String, val ...
  • 3.字元型 字元型常見的方法如下所示: capitalize():字元串第一個英文單詞首字母大寫 title():如字元串有多個英文單詞,則每個單詞首字母大寫 split():對字元串指定的分隔符進行拆分,預設為空格符 find():返回匹配到的字元第一次出現的位置索引,找不到返回 1 replac ...
  • 簡介 最近花了兩天時間研究使用Flutter開發一個抖音國際版. 先上圖,個人感覺使用Flutter開發app快得不要不要的額. 兩天就基本可以開發個大概出來. 最主要是熱更新,太方便實時調整UI佈局了. 相應速度極快. 功能介紹 Flutter開發安卓、IOS app確實方便,還有熱更新可以實時查 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...