01-Python 中的數據類型-01-數字類型

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

01-數字類型-01

結果如下:

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)

總結

今天介紹了一些 數字類型,常用操作 。 一定要多去練習, 實踐出真知。 裏面可能有很多沒有講到的內容,可以看看官方文檔,那裏是比較全面的。 加油!

參考文檔

doc python3

分享快樂,留住感動. 2020-03-15 10:31:29 --frank
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章