摘要:除此之外的特定形式還有二進制序列類型,那么我們在這里所說的序列主要包含以下三種列表列表是一種可變序列,一般形式為,方括號內(nèi)的各項間用逗號分隔。
引言
對于以前沒有接觸過任何編程語言的人來說,首先能明確編程的目的很重要,往往能明確一個目的,在日后的學(xué)習(xí)中遇到困難時心態(tài)就會輕松許多。當(dāng)今計算機文化的多元化發(fā)展,涌現(xiàn)出了大數(shù)據(jù)、分布式計算、神經(jīng)網(wǎng)絡(luò)、機器學(xué)習(xí)等眾多新概念,即便這樣,任何意義上的編程的核心目的都脫離不了數(shù)據(jù)處理,這點始終貫穿了計算機的發(fā)展史。那么我們就從數(shù)據(jù)處理入手,來看看我們要怎么處理數(shù)據(jù)。
知識點預(yù)備在開始學(xué)習(xí)前,需要了解的知識點包括:
了解計算機組成
知道虛擬機概念和各層的作用
數(shù)學(xué)知識點:二進制數(shù)
推薦參考資料:
計算機組成——結(jié)構(gòu)化方法
二進制數(shù)
說明本文中不再講解Python的安裝和環(huán)境配置,如果需要了解,請自行百度。文中出現(xiàn)的案例,均使用Python自帶的IDLE進行演示,代碼前的“>>>”是IDLE中代碼行首的標(biāo)識符,在自己操作時不用輸入。
數(shù)據(jù)類型既然要進行數(shù)據(jù)處理,那么我們就先看看Python中所定義的數(shù)據(jù)類型,即我們所面對的是什么樣的數(shù)據(jù)。我們從最簡單幾種的入手,看看你能否了解數(shù)據(jù)的概念。
數(shù)字遠了的不說,僅從中國的結(jié)繩記事說起,就可以見得數(shù)字出現(xiàn)于文字之前,起源更為久遠。隨著人類數(shù)學(xué)觀的不斷發(fā)展,數(shù)字的形態(tài)也不斷演變,從計算機編程中出現(xiàn)的數(shù)字類型就可以窺斑知豹。Python中的數(shù)字類型不同于其他編程語言,這也是我最喜歡的地方,數(shù)字類型僅分為三類,即:整數(shù)(int)、浮點數(shù)(float)和復(fù)數(shù)(complex)。那么對于這三類數(shù)有不懂的同學(xué),請自行百度補腦。Python中數(shù)字類型數(shù)據(jù)常用于賦值操作,當(dāng)然后面會說到特殊的布爾型數(shù)值,同時也可用于判斷和狀態(tài)輸出等。
整數(shù)(整型)
輸入的每個整數(shù)代表即其自身,例如:
>>> x = 1 >>> y = 3 # 那么直接輸入整數(shù)時,輸出即整數(shù)自身,但不具有任何意義 >>> 3 3
知識點:除了我們通常直接輸入整數(shù)賦值外,也可以使用Python的內(nèi)建函數(shù)int()進行整數(shù)處理。關(guān)于int()詳細的使用方法,可以點擊鏈接參考。
浮點數(shù)(浮點型)
同整數(shù)一樣,浮點數(shù)在我們的日常學(xué)習(xí)中不可或缺,例如:
>>> x = 3.1415926 >>> x 3.1415926 >>> 3.1415926 3.1415926
知識點1:除了我們通常直接輸入浮點數(shù)賦值外,也可以使用Python的內(nèi)建函數(shù)float()進行處理。關(guān)于float()詳細的使用方法,可以點擊鏈接參考。
知識點2:在我們的日常數(shù)字處理中,難免會遇到取整問題,在Python中的取整有兩種方法,但得出的結(jié)果不盡相同。這兩種可采用int()和round()進行取證操作,詳細內(nèi)容可點擊鏈接進行參考。
復(fù)數(shù)
復(fù)數(shù)分為虛部和實部,每個部分中均采用浮點型數(shù)值,賦值方法如下:
>>> x = 3 + 4j >>> x (3+4j)
知識點1:除了我們通常直接輸入復(fù)數(shù)賦值外,也可以使用Python的內(nèi)建函數(shù)complex()進行處理。關(guān)于complex()詳細的使用方法,可以點擊鏈接參考。
知識點2:復(fù)數(shù)實部和虛部數(shù)值的獲取可以采用z.real和z.imag進行操作,如下:
>>> x = 3 + 4j >>> x.real 3.0 >>> x.imag 4.0
那么以上三種就是我們Python學(xué)習(xí)中會遇到的大多數(shù)的數(shù)字類型,整個數(shù)理運算都離不開這三種,我們會在后續(xù)的內(nèi)容中詳細講解數(shù)字運算和它們的方法。
說明本文中所出現(xiàn)的數(shù)值一般采用十進制,除此之外還有二進制、八進制和十六進制等,想要詳細了解請參考進制。
文本文本類型在Python中全稱是文本序列類型,那么它又分文機器偏向和人類偏向,各自代表的意思是機器易讀和人類易讀。人類易讀即我們現(xiàn)在打開電腦后屏幕上所有你能看得懂語義的文本內(nèi)容,像本文中的文字,又或者你日常辦公軟件中處理的文字,這些都屬于文本類型數(shù)據(jù)。那么機器易讀就顯而易見是計算機能看得懂語義的文字了,也就是計算機可以直接進行處理的文字,那么如果你了解了我文章開始提供的兩篇參考資料,在這里就可以容易明白了。
文本在Python中通常體現(xiàn)為字符串,即string,內(nèi)建類型為str。說到字符串,我們可以舉一個常見的例子:
Hello world!
那么懂英文的人應(yīng)該都知道它的意思,那么這句話就是一個字符串,在Python字符串的體現(xiàn)形式是一句話或一個字加雙引號("")或單引號(""),即:
>>> "Hello world!" "Hello world!" >>> "Hello world!" "Hello world!" # 兩種輸出結(jié)果一致 # 同樣可以進行賦值操作 >>> x = "Hello world!" >>> x "Hello world!"
知識點:除了直接加引號賦值外,還可以使用Python內(nèi)建函數(shù)str()進行操作,點擊鏈接查看詳細使用說明。
你可以看到,用我們通常人類的語義理解這句話,它里面包含了兩個單詞、一個空格和一個感嘆號,當(dāng)機器讀取時,需要首先將字符串拆分為每個字符讀入,然后再進行后續(xù)處理。那么這句話里一共包含了12個字符,即便空格和感嘆號也是字符。說到字符,我們又不得不提到Unicode,給大家提供兩處參考引用:
Unicode是什么
Unicode官方網(wǎng)站
看過參考資料后我們可以知道,每個字符對應(yīng)一個代碼點,從Python 3開始的編碼規(guī)范統(tǒng)一采用“utf-8”,即Unicode 8位編碼。那么關(guān)于如何查看每個字符的代碼點,及如何將代碼點轉(zhuǎn)換為字符,可以參考Python內(nèi)建函數(shù)chr()和ord()的詳細使用說明。
序列序列似乎與我們數(shù)學(xué)中所接觸的數(shù)列有相似之處,數(shù)列是由特定規(guī)則組成的數(shù)字序列,即數(shù)列可以說是序列的子類,例如斐波契那數(shù)列。那么Python所說的序列中可以包含任意類型數(shù)據(jù),當(dāng)然range除外。而上面所說的文本,也就是文本序列其實是序列的特定形式,文本序列相當(dāng)于Unicode代碼點的不可變序列(后續(xù)我會講到可變序列和不可變序列的區(qū)別)。除此之外的特定形式還有二進制序列類型,那么我們在這里所說的序列主要包含以下三種:
列表(list)列表是一種可變序列,一般形式為“[]”,方括號內(nèi)的各項間用逗號分隔。列表通常存儲同類型的數(shù)據(jù),但是它也可以存儲混合類型的數(shù)據(jù),例如:
# 單一類型 >>> x = [1, 2, 3] >>> x [1, 2, 3] # 混合類型 >>> y = [1, "一", 2, "二"] >>> y [1, "一", 2, "二"]
元組(tuple)知識點:除了以上賦值方法外,還可以使用Python內(nèi)建函數(shù)list()進行操作,點擊鏈接查看詳細使用說明。
元組是一種不可變序列,一般形式為“()”,圓括號內(nèi)的各項間用逗號分隔。
>>> x = [1, 2, 3] >>> y = (1, "一", 2, "二") # 混合類型 >>> z = x, y >>> z ([3, 2, 1, 4, 7], (1, "一", 2, "二"))
區(qū)間(range)知識點1:上面的案例中采用了兩種方式進行元組賦值,即y = (1, "一", 2, "二")和z = x, y,注意這里面用圓括號或者直接用逗號分隔項賦值均可創(chuàng)建元組。
知識點2:除了以上賦值方法外,還可以使用Python內(nèi)建函數(shù)tuple()進行操作,點擊鏈接查看詳細使用說明。
range通常表示某個范圍內(nèi)的連續(xù)數(shù)字,但我更愿意稱它為區(qū)間。區(qū)間屬于不可變序列,在我看來它屬于特殊的元組,即在某個區(qū)間內(nèi)有連續(xù)數(shù)字項的元組,形式如下:
>>> range(10) range(0, 10)
數(shù)據(jù)間相互轉(zhuǎn)化知識點:區(qū)間的詳細用法參考Python內(nèi)建函數(shù)range()進行操作,點擊鏈接查看使用說明。
以上提到的三種數(shù)據(jù)類型——數(shù)字、文本和序列,可以在一定范圍內(nèi)轉(zhuǎn)化,下面就說一下可轉(zhuǎn)化的類型:
數(shù)字轉(zhuǎn)化為字符串
>>> x = 1 >>> y = 3.14 >>> z = 3 + 5j >>> s1 = str(x) >>> s2 = str(y) >>> s3 = str(z) >>> s1 "1" >>> s2 "3.14" >>> s3 "(3+5j)"
采用str()內(nèi)建函數(shù)進行操作,注意字符串不能直接轉(zhuǎn)換為數(shù)字。
列表、元組和區(qū)間轉(zhuǎn)換
>>> x = [14, 3, 8, 7, 5] >>> y = ("Hello", " ", "world", "!") >>> z = range(10) # 列表和元組間互相轉(zhuǎn)換 >>> x1 = tuple(x) >>> x1 (14, 3, 8, 7, 5) >>> y1 = list(y) >>> y1 ["Hello", " ", "world", "!"] # 區(qū)間轉(zhuǎn)換為列表或元組 >>> z1 = list(z) >>> z1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> z2 = tuple(z) >>> z2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
采用list()或tuple()內(nèi)建函數(shù)進行操作,注意列表/元組不能轉(zhuǎn)換為區(qū)間。
字符串 、列表/元組間轉(zhuǎn)換
# 列表/元組轉(zhuǎn)換為字符串 >>> y = ("Hello", " ", "world", "!") >>> s = "" >>> for i in y: s += i >>> s "Hello world!" # 字符串轉(zhuǎn)換為列表/元組 >>> z = [] >>> for i in s: z.append(i) >>> z ["H", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]
綜述上述的轉(zhuǎn)化過程涉及到了for循環(huán)語句和列表的append()方法,這些會在后續(xù)的內(nèi)容中講到。注意元組沒有append()方法,因此字符串只能轉(zhuǎn)換為列表,如果需要輸出結(jié)果為元組,那么可以再tuple()一下。
可以發(fā)現(xiàn)當(dāng)采用迭代方法將字符串轉(zhuǎn)換為列表時,輸出結(jié)果與我們預(yù)想的結(jié)果,即類似y的值有所不同,這會在后續(xù)內(nèi)容中詳細的提供解決辦法。
本文中針對入門學(xué)習(xí)的人員,主要講解了三種常用數(shù)據(jù)類型以及簡單的數(shù)據(jù)賦值創(chuàng)建方法,其實除此之外,數(shù)據(jù)類型還有很多種,例如布爾型、迭代器、二進制序列、集合等。那么這些類型會結(jié)合實際案例一并講解。關(guān)于數(shù)據(jù)的處理,數(shù)據(jù)處理并不僅限于本文中所提及的內(nèi)容,譬如數(shù)字類型數(shù)據(jù)還可以進行數(shù)學(xué)運算,序列類型還有切片、排序等方法,那么這些方法同樣會想本文中提及的,以引文鏈接的方式在日后的實例中給出詳細解答。
說明本文中所引用的CSDN中Python內(nèi)建函數(shù)的文章,均是我本人所寫,目前還在緩慢的推進中,其中不免出現(xiàn)翻譯的紕漏,還望指正。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38556.html
摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個布爾值只有兩種值的數(shù)據(jù)類型可以通過內(nèi)置的函數(shù)查詢,例如還可以用來判斷和的區(qū)別在于不會認為子類是一種父類類型。會認為子類是一種父類類型?;竟δ苁沁M行成員關(guān)系測試和刪除重復(fù)元素。 ...
摘要:導(dǎo)語本文章匯總了本人在學(xué)習(xí)基礎(chǔ)之緒論篇數(shù)據(jù)結(jié)構(gòu)篇函數(shù)篇面向?qū)ο笃刂屏鞒唐驮幊唐獙W(xué)習(xí)筆記的鏈接,打算入門的朋友們可以按需查看并交流。 導(dǎo)語:本文章匯總了本人在學(xué)習(xí)Python基礎(chǔ)之緒論篇、數(shù)據(jù)結(jié)構(gòu)篇、函數(shù)篇、面向?qū)ο笃?、控制流程篇和元編程篇學(xué)習(xí)筆記的鏈接,打算入門Python的朋友們可以按需查看并交流。 第一部分:緒論篇 1、Python數(shù)據(jù)模型 第二部分:數(shù)據(jù)結(jié)構(gòu)篇 2、序列構(gòu)成...
閱讀 2812·2019-08-30 15:55
閱讀 2858·2019-08-30 15:53
閱讀 2296·2019-08-26 13:47
閱讀 2558·2019-08-26 13:43
閱讀 3157·2019-08-26 13:33
閱讀 2805·2019-08-26 11:53
閱讀 1798·2019-08-23 18:35
閱讀 801·2019-08-23 17:16