數據類型
在Python裡,常用的數據類型有三種,字符串,整數,浮點數
字符串
首先, 我們來看一下「黃袍加身」的字符串, 字符串英文名string,簡稱str。 其實, 在上一課的時候, 你已經用過它了,看面龐很熟悉。
name='小美'
print("Let's go go go")
是不是很熟悉? 你猜對了,穿上單引號、雙引號、三引號黃袍的內容就是字符串,無論引號裡面內容是中文、英文、法文、數字、符號、甚至是火星文。
在上面代碼裡 小美' ,"Let's go go go" 都屬於字符串類型。
movie = '美國隊長2'
name = 'The Winter Soldier'
price = "7.14"
word = '''≡(▔﹏▔)≡'''
print(movie)
print(name)
print(price)
print(word)
感覺怎麼樣, 字符串是不是很簡單。
字符串, 江湖行話, 就是由一個個字符連接起來的組合, 你平時所見的字母、數字、漢字、符號都是字符。 字符串可以用來表示詞、語句、甚至是數學公式。
記得用引號括住,創建字符串;將字符串賦值給變量;使用print()函數列印。】
say = '你說我們會成功的'
print(say)
say1 = '那你為什麼不努力?'
print(say1)
特點
單引號、雙引號、三引號括起來的文本
是時候,脫去黃馬甲了,某些數據脫去黃馬甲, 也照樣能列印出來。比如上一關的print(1314)
這就是我們常見的數據類型第二種:整數, 英文為integer, 簡稱int。 Python的整數和我們現實數學中定義的一樣:整數是正整數、零和負整數的統稱。說白了,就是沒有小數點的數字。在下面代碼中,所有變量的內容都是整數
age = 20 height = 200 weight = 700
現在,我們趁熱打鐵,請問以下三個數據 「hello tianer 」 46 「82」 的數據類型分別為:A:字符串 整數 字符串B:字符串 整數 整數C:文字 數字 英文
恭喜你答對了,選A。 由引號括起來的「hellotianer」 「82」是字符串,無引號的46才是整數。
整數就是一個不帶小數點的數字,還不能穿黃馬甲。直接用print()函數列印。 比如如下代碼:
# 列印整數
print(666)
# 輸出結果666,整數和字符串不一樣,它不能穿黃馬甲,只能獨自玩耍,一旦遇到其他文字、字母、符號立馬會吐槽。
浮點數
整數是不帶小數點的純數字,那麼帶小數點的純數字怎麼表示呢?Python江湖中,將帶有小數點的純數字定義為浮點數。 它是我們從常見的數據類型之一。浮點數是顯而易見的,它比整數多了一個小數點【.】,下列代碼中的數字都是浮點數。
3.1415926
95.27
999.00
浮點數,英文稱為float。只是浮點型沒有簡寫形式
浮點數雖說比整數多一個小數點,但是它存在一個bug。因為浮點數的特點,導致它在計算機內運算時,結果不是那麼精確,會有四捨五入的差。這是什麼意思呢?
下面,請你先口算一下【0.35+0.11】的結果?然後我們使用Python程序運行一下, 請點擊下面運行按鈕,並閱讀答案:
呀? 怎麼不是0.46呢,而是一個比0.46小的數字? 這是因為Python計算浮點數時,會把0.35與0.11轉換成二進位數 【江湖秘籍:二進位數由0和1表示,逢2進1】
#二進位轉換
0.35(十進位) = 0.010110011001100110011001100110011001100110011001100111(二進位)
0.11(十進位)= 0.00011100001010001111010111000010100011110101110000101001(二進位)
在這個十進位轉換二進位過程中,產生了誤差,這樣就造成了我們與結果的誤差。
然後,這兩個二進位數字相加後,在將得到的二進位結果轉換成十進位小數
不過對於浮點數, 你不要慌,在前期我們很少會涉及浮點數運算。在後期的基礎課,小K帶你接觸更多的相關知識,加深對浮點數的理解。
下面我們來回顧一下浮點數的主要內容。
以上,就是我們接觸的三種常用的數據類型: 字符串、整數、浮點數
選擇題
請問以下數據【88】、【-3】、【『99』】的數據類型分別為:
A:整數、小數、字符串 B:整數、整數、字符串 C:整數、浮點數、整數
選B。88是正整數屬於整數,-3是負整數屬於整數 '99'有引號屬於字符串。
Python中的整數、浮點數和數學上的整數、小數是一樣的,它最重要的作用是結合運算符號進行數學計算。 接下來我們看一下Python如何利用整數、浮點數進行四則運算。
Python中的四則運算,法則和數學上的一致,符號有點差別。
首先,我們看一看Python江湖的運算符。
Python算術運算符 運算符 表示 例子
+ 加 100+2輸出結果102
- 減 100-2輸出結果98
乘 * 100*2輸出結果200
/ 除 100/2輸出結果50
還是加減乘除,但是乘與除的符號變了哦。
有了四則運算,再說一下Python江湖裡的運算優先級。
先算乘除,再算加減,有括號的先算括號裡的,從左往右。這不和數學上的運算一樣一樣一樣的嘛。運行下面代碼,試一試。
運行下面代碼,試一試。
我們看一下print((55+22)*99+(38-21)*10)的運算順序:第一步計算55+22 =77; 第二步計算77*99= 7623; 第三步計算38-21=17; 第四步計算17*10 =170 ; 第五步計算7623+170 = 7793 。
好複雜的運算啊,有了拼接符號, 我們就可以拼接我們想要的內容.』(算得有點慢. 有點慢算得有點慢)當然我們還可以調整拼接順序, 輸出不同內容.就把這個工作交給Python幹呀。省下的時間就可以風花雪月了
。 按照運算法則,先算括號,再算乘除,最後加減,自左至右。
有了拼接符號, 我們就可以拼接我們想要的內容.』 』. 當然我們還可以調整拼接順序, 輸出不同內容.
學會了字符串拼接,就能讓我們整合數據更加靈活, 組合出我們想要的任意內容。
這就是我們所學的字符串拼接。
請點擊下面運行按鈕, 下面這段代碼有bug, 報錯請點擊白色文字按鈕[跳過本題]:
name = '美我愛你'
num= 2
print(name+num
理想很豐滿,現實很骨感。 又向我們吐槽了。 江湖秘籍:只有字符串與字符串才能拼接。
到底是那裡不對呢?你會發現num=2中的2沒有引號,也就是說num不是字符串,而是一個整數。
那麼問題來了,當我們探查洞察計劃中更多的數據時怎麼辦? 總不能通過肉眼一個一個去看呀。
數據類型的查詢—type()函數
type()函數 。
這一點,Python已經給我寫好了,它拋給我們一個月光寶盒。 能夠幫助我們來查詢不確定數據的類型。 這個月光寶盒是一個函數,叫做type()函數 。
這個type()函數應該如何使用呢? So easy,只需要把查詢的內容放進括號裡就得了。
只要你把內容寫在括號裡,type()函數會自動查詢它的類型。
name = '=親親'
type(name)
type(num)
沒有內容就對了。 對於Python而言,你只是下了一個查詢類型的命令,type()函數已經執行結束,就… 就… 就沒然後了。
在你的命令裡,你沒有告訴Python查詢完類型後列印結果,再告訴你。 你不多說這一步,它都不做的
因此,我們要結合print()函數列印出結果。 下面,補全代碼,將type()函數查詢結果 放進print() 中,例print(type(name))
name = '親親'
print(type(name))
print(type(num))
name = '親親' 查詢的結果是< class 'str'>, 屬於字符串類型。
num = 2 查詢的結果是< class 'int'>, 屬於整數類型。
在月光寶盒type()函數的幫助下, 我們可以一一識別洞察計劃中各類數據的類型。
貌似到現在, 我們的問題還沒有解決啊, 我們還是沒有將name = '親親'與num = 2拼成'親親2'啊.
為什麼一個字符串類型的變量與一個數字類型的變量不能連接起來呢? 就是他倆不是一類人。打個比方,美女配英雄。 總不能美女配野獸啊。 美女和野獸聊不起天啊。但是, 你現在非得讓美女配野獸, 怎麼辦? 怎麼才能把兩個不同類型的數據拼在一起?
就涉及到了這堂課的最後一個知識點: 數據轉換。
數據轉換
數據轉換的方法有3個: str() ,int(),float()
下面我們先來看一下str()函數。
Str()函數
Str()函數, 不管你之前屬於啥類型。 只要到了我的地盤,就得聽我的,我就把任何數據都轉成字符串類型
下面,運行一下左邊代碼,看如何完成字符串拼接。
name = '美國'
print(name+str(num))
是不是很簡單?我們只需要通過str(num)一個步驟,就將整數類型的【2】轉換成字符串類型的【2】,成功拼接。
怎麼樣,str()函數是不是很簡單。我們來做道題驗證一下。
選擇題:請問, 下面選項的代碼, 運行後, 哪一句會報錯?
A:print(9+6+5)
B:print('Python'+'江湖')
C:print('小女今年'+18)
選C。18是int類型,與字符串類型拼接肯定報錯。
請既然整數類型能夠轉換成字符串類型,那字符串類型能轉換為整數嗎?請看下一課