下標索引必須為正整數類型或邏輯類型_Python3 基本數據類型

Python中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創建。

在Python中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內存中對象的類型。

Python 3中有六個標準的數據類型:

  • Numbers(數字)

  • String(字符串)

  • List(列表)

  • Tuple(元組)

  • Sets(集合)

  • Dictionaries(字典)

Numbers(數字)

Python 3支持int、float、bool、complex(復數)。

數值類型的賦值和計算都是很直觀的,就像大多數語言一樣。內置的type()函數可以用來查詢變量所指的對象類型。

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))

數值運算:

>>> 5 + 4  # 加法9>>> 4.3 - 2 # 減法2.3>>> 3 * 7  # 乘法21>>> 2 / 4  # 除法,得到一個浮點數0.5>>> 2 // 4 # 除法,得到一個整數0>>> 17 % 3 # 取余2>>> 2 ** 5 # 乘方32

注意:

  • 1、Python可以同時為多個變量賦值,如a, b = 1, 2。

  • 2、一個變量可以通過賦值指向不同類型的對象。

  • 3、數值的除法(/)總是返回一個浮點數,要獲取整數使用//操作符。

  • 4、在混合計算時,Pyhton會把整型轉換成為浮點數。

String(字符串)

Python中的字符串str用單引號(' ')或雙引號(" ")括起來,同時使用反斜杠(\)轉義特殊字符。

>>> s = 'Yes,he doesn\'t'>>> print(s, type(s), len(s))
Yes,he doesn't 14

如果你不想讓反斜杠發生轉義,可以在字符串前面添加一個r,表示原始字符串:

>>> print('C:\some\name')
C:\some
ame>>> print(r'C:\some\name')
C:\some\name

另外,反斜杠可以作為續行符,表示下一行是上一行的延續。還可以使用"""..."""或者'''...'''跨越多行。

字符串可以使用 + 運算符串連接在一起,或者用 * 運算符重復:

>>> print('str'+'ing', 'my'*3)
string mymymy

Python中的字符串有兩種索引方式,第一種是從左往右,從0開始依次增加;第二種是從右往左,從-1開始依次減少。

注意,沒有單獨的字符類型,一個字符就是長度為1的字符串。

>>> word = 'Python'>>> print(word[0], word[5])
P n>>> print(word[-1], word[-6])
n P

還可以對字符串進行切片,獲取一段子串。用冒號分隔兩個索引,形式為變量[頭下標:尾下標]。

截取的范圍是前閉后開的,并且兩個索引都可以省略:

>>> word = 'ilovepython'>>> word[1:5]'love'>>> word[:]'ilovepython'>>> word[5:]'python'>>> word[-10:-6]'love'

與C字符串不同的是,Python字符串不能被改變。向一個索引位置賦值,比如word[0] = 'm'會導致錯誤。

注意:

  • 1、反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義。

  • 2、字符串可以用+運算符連接在一起,用*運算符重復。

  • 3、Python中的字符串有兩種索引方式,從左往右以0開始,從右往左以-1開始。

  • 4、Python中的字符串不能改變。

List(列表)

List(列表) 是 Python 中使用最頻繁的數據類型。

列表是寫在方括號之間、用逗號分隔開的元素列表。列表中元素的類型可以不相同:

>>> a = ['him', 25, 100, 'her']>>> print(a)
['him', 25, 100, 'her']

和字符串一樣,列表同樣可以被索引和切片,列表被切片后返回一個包含所需元素的新列表。詳細的在這里就不贅述了。

列表還支持串聯操作,使用+操作符:

>>> a = [1, 2, 3, 4, 5]>>> a + [6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]

與Python字符串不一樣的是,列表中的元素是可以改變的:

>>> a = [1, 2, 3, 4, 5, 6]>>> a[0] = 9>>> a[2:5] = [13, 14, 15]>>> a
[9, 2, 13, 14, 15, 6]>>> a[2:5] = [] # 刪除>>> a
[9, 2, 6]

List內置了有很多方法,例如append()、pop()等等,這在后面會講到。

注意:

  • 1、List寫在方括號之間,元素用逗號隔開。

  • 2、和字符串一樣,list可以被索引和切片。

  • 3、List可以使用+操作符進行拼接。

  • 4、List中的元素是可以改變的。

Tuple(元組)

元組(tuple)與列表類似,不同之處在于元組的元素不能修改。元組寫在小括號里,元素之間用逗號隔開。

元組中的元素類型也可以不相同:

>>> a = (1991, 2014, 'physics', 'math')>>> print(a, type(a), len(a))
(1991, 2014, 'physics', 'math') <class?'tuple'>?4

元組與字符串類似,可以被索引且下標索引從0開始,也可以進行截取/切片(看上面,這里不再贅述)。

其實,可以把字符串看作一種特殊的元組。

>>> tup = (1, 2, 3, 4, 5, 6)>>> print(tup[0], tup[1:5])1 (2, 3, 4, 5)>>> tup[0] = 11  # 修改元組元素的操作是非法的

雖然tuple的元素不可改變,但它可以包含可變的對象,比如list列表。

構造包含0個或1個元素的tuple是個特殊的問題,所以有一些額外的語法規則:

tup1 = () # 空元組tup2 = (20,) # 一個元素,需要在元素后添加逗號

另外,元組也支持用+操作符:

>>> tup1, tup2 = (1, 2, 3), (4, 5, 6)>>> print(tup1+tup2)
(1, 2, 3, 4, 5, 6)

string、list和tuple都屬于sequence(序列)。

注意:

  • 1、與字符串一樣,元組的元素不能修改。

  • 2、元組也可以被索引和切片,方法一樣。

  • 3、注意構造包含0或1個元素的元組的特殊語法規則。

  • 4、元組也可以使用+操作符進行拼接。

Sets(集合)

集合(set)是一個無序不重復元素的集。

基本功能是進行成員關系測試和消除重復元素。

可以使用大括號 或者 set()函數創建set集合,注意:創建一個空集合必須用 set() 而不是 { },因為{ }是用來創建一個空字典。

>>> 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(字典)

字典(dictionary)是Python中另一個非常有用的內置數據類型。

字典是一種映射類型(mapping type),它是一個無序的鍵 : 值對集合。

關鍵字必須使用不可變類型,也就是說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

構造函數 dict() 直接從鍵值對sequence中構建字典,當然也可以進行推導,如下:

>>> 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}

另外,字典類型也有一些內置的函數,例如clear()、keys()、values()等。

注意:

  • 1、字典是一種映射類型,它的元素是鍵值對。

  • 2、字典的關鍵字必須為不可變類型,且不能重復。

  • 3、創建空字典使用{ }。

1fc9f0ee2287d46c4824722d0c256c9d.png

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

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

相關文章

noip模擬賽 寫代碼

分析&#xff1a;這其實就是括號匹配題&#xff0c;一眼貪心題&#xff0c;不過一開始貪錯了&#xff0c;以為([)]是合法的......其實括號之間不能嵌套. 一開始的想法是盡量往左邊填左括號&#xff0c;因為每種括號的數量都確定了&#xff0c;那么左括號和右括號的數量也就確定…

[CF797C] Minimal string(貪心,棧)

題目鏈接&#xff1a;http://codeforces.com/contest/797/problem/C 題意&#xff1a;給個字符串&#xff0c;求字典序最小的出棧順序。 一開始想用優先隊列記錄全局最小的字符&#xff0c;然后每次入棧的時候檢查當前字符是不是最小的&#xff0c;如果是那么同時pop。這樣做的…

讓我們緊縮大數據

作為開發人員&#xff0c;我們的重點是簡單&#xff0c;有效的解決方案&#xff0c;因此&#xff0c;最有價值的原則之一就是“保持簡單和愚蠢”。 但是使用Hadoop map-reduce很難堅持這一點。 如果我們要評估多個Map Reduce作業中的數據&#xff0c;那么最終將得到與業務無關但…

行內元素和塊元素以及行內塊元素的特點

一、背景 初學html&#xff0c;接觸很多標簽 <h1>、<p>、<span>、<ul>、<em>等&#xff0c;當寫出簡單的小頁面的時候&#xff0c;例如僅僅是一篇帶有標題的文章&#xff0c;標題 <h1>標簽單獨一行&#xff0c;不管后面有多大的空間&…

軟件測試的功能測試和性能測試,大型軟件的功能測試流程及性能測試流程

大型軟件具有涉及子模塊繁多、建設過程復雜、功能全面、性能具有較高要求的特點。依據ISO/IEC 9126軟件產品評估標準&#xff0c;需要對軟件的功能性、可靠性、可用性、效率、可維護性、可移植性等方面進行評估。因此&#xff0c;需要有一種方法能夠對大型軟件進行測試&#xf…

vue 分模塊打包 腳手架_Vue面試官最愛的底層源碼問題,你可以這樣回答!

最近看到身邊很多人都在投簡歷&#xff0c;有因為企業裁員的&#xff0c;有因為自己想跳槽的&#xff0c;原因不一&#xff0c;但是最終大家都會需要接觸到面試這個事情。但是很多人對待面試不夠認真&#xff0c;只會等待結果&#xff0c;不去努力。所以這邊想整理一些懶人面試…

re.containerbase.startinternal 子容器啟動失敗_Python項目容器化實踐(二) Docker Machine和Docker Swarm...

前言這篇文章介紹Docker生態中的常被提到的Engine、Machine和Swarm&#xff0c;大家以了解為主&#xff0c;工作需要再深入。EngineDocker Engine其實就是我們常說的「Docker」&#xff0c;它是一個C/S模型(Client/Server)的應用&#xff0c;包含如下組件:Daemon。守護進程&…

基于設備樹的TQ2440的中斷(2)

下面以按鍵中斷為例看看基于設備數的中斷的用法&#xff1a; 設備樹&#xff1a; tq2440_key {compatible "tq2440,key";interrupt-parent <&gpf>;interrupts <0 IRQ_TYPE_EDGE_FALLING>, <1 IRQ_TYPE_EDGE_FALLING>;key_3 <&gpf 2…

計算機里有個不能進入的磁盤分區,新電腦只有一個分區怎么辦? 教你們如何不進pe給硬盤創建新分區!...

很多朋友新電腦剛買回來打開發現明明自己機械硬盤1T或者1T機械加128G固態&#xff0c;但是卻只有一個或者兩個分區&#xff0c;但是又不會分區現在教大家如何不用老毛桃大白菜之類的進pe系統里面就能直接創建新分區1 WinR輸入diskmgmt.msc2進入磁盤管理可以查看本機的C盤與E盤的…

OSGi中的權限

在上一篇文章中 &#xff0c;我們介紹了為Java應用程序實現沙箱的方法&#xff0c;在其中我們可以安全地運行移動代碼 。 這篇文章探討了如何在OSGi環境中執行相同的操作。 OSGi OSGi規范 為Java定義了一個動態模塊系統 。 因此&#xff0c;它是實施那種可以使您的應用程序動…

HTTP簡單教程

目錄 HTTP簡介 HTTP工作原理 HTTP消息結構 客戶端請求消息服務器響應消息實例 HTTP請求方法HTTP響應頭信息HTTP狀態碼 HTTP狀態碼分類HTTP狀態碼列表 HTTP content-type對照表 HTTP簡介 HTTP協議是Hyper Text Transfer Protocol&#xff08;超文本傳輸協議&#xff09;的縮寫&…

Reversed-Z詳解

在3D渲染管線中&#xff0c;Z這個家伙幾乎無處不在&#xff0c;如Z-Buffer&#xff0c;Early-Z&#xff0c;Z-Cull&#xff0c;Z-Test&#xff0c;Z-Write等等&#xff0c;稍有接觸圖形學的人都會對這些術語有所耳聞。 那么Z到底是什么呢&#xff1f;首先Z當然可以是任意坐標系…

pyqt開發的程序模板_小程序定制開發和模板開發要多少錢?有什么區別?

到現在&#xff0c;小程序開發已經有了1年多的歷史&#xff0c;已經達到百萬數量級。無論是小程序商城還是小程序游戲&#xff0c;其開發方式不外乎兩種&#xff0c;一種是定制開發&#xff0c;另一種是模板開發。對于很多初次接觸小程序的客戶來說&#xff0c;還不知道小程序的…

實現字符串的編碼轉換,用以解決字符串亂碼問題

引起亂碼的情況很多~實質上 主要是字符串本身的編碼格式 與程序所需要的編碼格式不一致導致的。要解決亂碼其實很簡單&#xff0c; 分2步 &#xff1a; 1&#xff1a;獲取到字符串 本身的編碼 2&#xff1a;改變字符串編碼 &#xff08;本身編碼 -> 新編碼&#xff09; 話不…

python運行原理_Python線程池及其原理和使用(超級詳細)

系統啟動一個新線程的成本是比較高的&#xff0c;因為它涉及與操作系統的交互。在這種情形下&#xff0c;使用線程池可以很好地提升性能&#xff0c;尤其是當程序中需要創建大量生存期很短暫的線程時&#xff0c;更應該考慮使用線程池。 線程池在系統啟動時即創建大量空閑的線程…

Google Guava緩存

這篇文章是我在Google Guava上系列文章的續篇&#xff0c;這次涵蓋了Guava Cache。 與HashMap或ConcurrentHashMap相比&#xff0c;Guava Cache提供了更大的靈活性和功能&#xff0c;但不像使用EHCache或Memcached那樣繁重&#xff08;就此而言&#xff0c;它很健壯&#xff0c…

html 三列布局(兩列自適應,一列固定寬度)

不做過多解釋&#xff1a;主要是記錄一個完整的布局樣式&#xff0c;實現頁面大致三列其中左右兩列是自適應寬度&#xff0c;中間固定寬度效果。 不多少代碼奉上&#xff1a; CSS樣式代碼&#xff1a; /*********************公共標簽樣式********************//************…

jsp常用動作

jsp:include 動態包含&#xff1b; jsp:forward 轉發&#xff1b; jsp:useBean 實例化bean對象&#xff1b; jsp:setProperty 設置一個屬性值 jsp:getProperty 獲取一個屬性值 jsp:param 動態傳參數&#xff1b; jsp:plugin 生成一個插件 jsp:useBean 實例化一個對象…

單曲循環 翻譯_歌單 | 單曲循環amp;熱評

December2020/12/ 寫在前面的話 /本來打算在跨年的時候才更文&#xff0c;但是吧又覺得空出這最后一個月有點蒼白&#xff0c;然后最近一直夜半網抑云(敏感ing)就想到可以做一期分享歌單的推文&#xff0c;分享一些最近聽得頻繁的歌曲(還不是刷抖音刷出來的)。《曖昧》// 王菲徘…

python的字符串內建函數

python的字符串內建函數 字符串方法是從python1.6到2.0慢慢加進來的——它們也被加到了Jython中。 這些方法實現了string模塊的大部分方法&#xff0c;如下表所示列出了目前字符串內建支持的方法&#xff0c;所有的方法都包含了對Unicode的支持&#xff0c;有一些甚至是專門用…