01-Python 中的數據類型-01-數字類型
總體 要講的大綱內容 如下
- 數字類型- int float complex
- 序列類型 - list tuple range
- 集合類型 -
set
frozenset
- 上下文管理器類型 - 比較複雜暫時 不用掌握
- 文本序列類型
- 二進制序列類型 bytes bytesarray memoryview
- 真值檢測
- 比較運算符
- 邏輯運算符
- 如何判斷 一個對象 是什麼類型- type(xxx)
今天的內容比較多,這些內容幾乎貫穿了python 的基礎,所以 我第一篇 先從數據類型 開始講起 。
首先 很多同學 可能疑問 爲啥會有數據類型? 其實在人類 的世界中,人們也是有數據類型
的,
比如 桌子 的高度,回答 80 cm ,90cm 等
今天天氣是不是晴天? 回答 是或者不是
你的名字 是什麼? 回答 Frank 等。
第一個 回答 就是 數字的一個類型,
第二個回答 就是 布爾類型,就是真 ,假。
第三個回答 就是一個名稱 ,就是一個 字符串。
你看 ,我們很自然的就能用不同數據類型來回答生活中的問題 。 但是爲啥 計算機裏面單獨要說數據類型呢? 其實是因爲 計算機 太笨了,不告訴計算機這是什麼類型,它就不知道怎麼操作這個數據。 所以計算機需要知道是什麼類型,知道了什麼類型, 相對應的計算機就知道對這樣的類型 有哪些操作。
好了進入今天的話題, python 中的數據類型,在python中數據類型 有很多。每一種編程語言 對數據類型 定義有點區別,但大致都是一樣的。 第一個類型 數字類型
數字類型
數字類型 包含 int float complex , int 就是整數 向 1,2,3,… 等 float 就是小數 3.4 , 5.67,8.9 ; complex 就是複數 ,這個就是高中所學的 複數類型 ,有實部和虛部 那種類型。
來看下如何定義這些和使用這些類型
height = 165
print(f"height = {height}")
print(f"type = {type(height)}")
結果如下:
height = 165
type = <class 'int'>
這個時候點擊 運行的小按鈕,看結果出來, 第二行,可以看到是 int 類型
還有一點 要注意 python 寫代碼的時候 要注意縮進問題,一般來說,縮進是4個空格,當然編輯器pycharm 已經默認是這樣子了,如果以後 寫代碼的時候 報錯 類型
IndentationError: unexpected indent
這種錯誤就是 縮進有問題 的,要看下 代碼是不是沒有對齊?
好,現在 你知道如何查看一個 類型了嗎? 就是 type(xxx) 然後打印出來 就可以了。
下面我可以演示 在 python Console 裏面,這樣比較方便 。
我今天 花了 19.5 毛錢 ,money 這個就是float 類型的。
>>> money = 19.5
>>> type(money)
<class 'float'>
是不是很簡單。
還有一種類型 complex , complex( 'a+bj')
這樣就可以定義一個複數 其中a稱爲實部,b稱爲虛部,i 稱爲虛數單位。
>>> num = complex('1+2j')
>>> num
(1+2j)
>>> num.real
1.0
>>> num.imag
2.0
>>> type(num)
<class 'complex'>
也可以這樣定義
>>> num = 2 + 3j
... print(num)
... print(type(num))
(2+3j)
<class 'complex'>
這樣 也是可以的.
對於數字類型,int ,float 都有以下的操作 ,注意這裏我用的詞彙 操作 , 一般數字 就是 加減乘除,取餘 ,幾次方 等這些 運算操作 。
表 來自官方文檔 docs
Operation | Result | Notes | Full documentation |
x + y |
sum of x and y | ||
x - y |
difference of x and y | ||
x * y |
product of x and y 乘法 | ||
x / y |
quotient of x and y 除法 | ||
x // y |
floored quotient of x and y | (1) | |
x % y |
remainder of x / y |
(2) | |
-x |
x negated | ||
+x |
x unchanged | ||
abs(x) |
absolute value or magnitude of x | abs() |
|
int(x) |
x converted to integer | 把一個數字變成int 類型 | int() |
float(x) |
x converted to floating point | 把一個數字變成float | float() |
complex(re, im) |
a complex number with real part re, imaginary part im. im defaults to zero. | (6) | complex() |
c.conjugate() |
conjugate of the complex number c | ||
divmod(x, y) |
the pair (x // y, x % y) |
(2) | divmod() |
pow(x, y) |
x to the power y | (5) | pow() |
x ** y |
x to the power y | (5) |
來讓我們來看下
這些符號,大部分和我們使用計算器的符號一樣,直接輸入表達式就可以了,就可以得到結果,是不是很方便呢?
>>> num = 3
>>> num2 = 10
>>> num +num2
13
>>> num - num2
-7
>>> num * num2
30
>>> num / num2
0.3
>>> num2/ num
3.3333333333333335
>>> num2// num
3
有幾個 不是 太常用的 介紹一下
整除 操作 //
兩左斜線 ,如果兩個數相除 除不盡的情況, 比如 11 除以3 , 整除保留整數位,這裏不是 四捨五入。
>>> 11/3
3.6666666666666665
>>> 11//3
3
取餘操作 %
, 除不盡的時候 餘數是多少
>>> 11 %3
2
絕對值 abs() , 求一個數的絕對值
>>> abs(-4.7)
4.7
>>> abs(-9)
9
>>> abs(5)
5
>>> abs(4.7)
4.7
int 取整 ,把一個x 轉成int 類型,如果是小數,直接保留整數部分。注意 這裏 x 不一定是數字,可以是個字符串類型 ,只要可以轉換 成數字 就行。 比如 ‘4’ 就可以轉.
>>> int(4.7)
4
>>> int(-4.7)
-4
>>> int('4')
4
float 也是一樣哦,把 一個數字轉成 float 類型
>>> float('2.34543')
2.34543
>>> int('4')
4
>>> float('-2.34543')
-2.34543
這裏 我要說一個情況 假設 我突然哪一天 想把 ‘love’ 轉成 一個float 數字 會是 什麼情況?來試一下
>>> float('love')
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: could not convert string to float: 'love'
報錯了,計算機都明白 ,愛情是不能用數字來衡量的。 愛情高尚,不能用計量單位衡量。 哈哈哈
開玩笑,這裏爲啥報錯,其實報錯信息 已經很清楚了, 就是不能將一個字符串’love’ 轉成一個 float 類型,計算機無法做到。
就是說在使用 int (),float() 這些函數的時候,計算機 有可能會報錯,這個時候就要多想想 計算機爲啥不能處理這種情況。 剛剛說的報錯,就是 編程語言中的異常,這個是一個比較大的話題,等有時間在聊這個吧。 現在就是知道計算機有可能會報錯就可以了。
divmod(x,y) 這個函數 就是返回 兩個值, x//y , x%y
第一個值 取整,第二值 取 餘 的結果
>>> divmod(11,3)
(3, 2)
>>> divmod(10,2)
(5, 0)
這裏要說下 , 其實這裏 在編程中如何獲取這兩個值呢?
a, b = divmod(11, 3)
print(f"a={a},b={b}")
這樣divmod 就會返回值,就分別賦值給 a,b . 這裏其實返回的是一個元祖類型, 這個是python的數據類型, 類型 是 tuple
翻譯成元祖,這個可以先那麼瞭解之後會慢慢介紹。
>>> m =divmod(10,2)
>>> m
(5, 0)
>>> type(m)
<class 'tuple'>
pow 這個就是求 幾次方
pow(a,b) 就是 a的 b 次方 ,
這個函數 和 a **b 是一個意思, a 的b 次方 所以 ** 在運算符裏面就是次方的的意思
>>> pow(2,4)
16
>>> pow(3,3)
27
>>> pow(5,2)
25
>>> 2**4
16
>>> 3**3
27
>>> 5**2
25
下面一個是和複數相關的
conjugate() 共軛,共軛的,結合的,
這個方法就是求 一個複數的共軛複數
>>> num1 = complex(2,3)
>>> num1
(2+3j)
>>> num2= complex(3,4)
>>> num1.conjugate()
(2-3j)
>>> num1
(2+3j)
>>> num2.conjugate()
(3-4j)
>>> num2
(3+4j)
總結
今天介紹了一些 數字類型,常用操作 。 一定要多去練習, 實踐出真知。 裏面可能有很多沒有講到的內容,可以看看官方文檔,那裏是比較全面的。 加油!