0-4 Python 基礎資料型別-數值型別

qwer1030274531發表於2020-12-24

0-4 Python 基礎資料型別-數值型別


為什麼會有資料型別?[瞭解]

  • 更好分配管理記憶體
  • 方便統一管理
  • 更貼近人類分類管理習慣

資料型別種類 [熟悉]

  • 數值型別:int、bool、float、complex
  • 序列型別:不可變:str、tuple、bytes 可變: list
  • 集合型別:set
  • 對映型別:dict

數值型別介紹 [熟悉]

  • 數值型別是 不可變 型別。所謂的不可變型別,指的是型別的值一旦有不同了,那麼它就是一個全新的物件。數字1和2分別代表兩個不同的物件,對變數重新賦值一個數字型別,會新建一個數字物件。
  • 還是要強調一下 Python 的變數和資料型別的關係,變數只是對某個物件的引用或者說代號、名字、呼叫等等,變數本身沒有資料型別的概念 。只有1,[1,2],"hello"這一類物件才具有資料型別的概念。
  • Python 支援三種不同的數值型別:整數、浮點數和複數與布林。

整數 (int) 介紹 [熟悉]

  • 整數通常被稱為整型,數值為正或者負,不帶小數點。表示數字的時候,通常使用十進位制(decimal) 來表示。
  • 有時我們還會用八進位制或十六進位制來表示(瞭解)
  • 十六進位制用 0x 字首和 0-9 , a-f 表示,例如: 0xff00 。 python 中使用hex() 將十進位制轉為十六進位制
  • 八進位制用 0o 字首和 0-7 表示,例如 0o45 。 python 中使用 oct() 將十進位制轉為八進位制
  • 二進位制用 0b 字首和 0-1 表示,例如 0b11 。 python 中使用 bin() 將十進位制轉為二進位制

整數記憶體 [瞭解]

  • python 的整數長度為32位,並且通常是連續分配記憶體空間的。
  • 從下面程式碼的記憶體地址看,之間正好相差32。
  • 在這裡插入圖片描述

小整數物件池 [瞭解]

  • python 初始化的時候會自動建立一個小整數物件池,方便我們呼叫,避免後期重複生成!這是一個包含262個指向整數物件的指標陣列,範圍是-5到256。也就是說比如整數10,即使我們在程式裡沒有建立它,其實在 Python 後臺已經悄悄為我們建立了。
  • 作用:節省開銷,增快執行速度

整數緩衝區 [瞭解]

  • 除了小整數物件池,Python 還有整數緩衝區的概念,也就是剛被刪除的整數,不會被真正立刻刪除回收,而是在後臺緩衝一段時間,等待下一次的可能呼叫。
  • 注意:在互動環境當中演示不出來效果。該效果在pycharm當中實現;並且意不是小整數物件池當中的值。

浮點數 (float) 介紹 [熟悉]

  • 浮點數也就是小數,如1.23,3.14,-9.01,等等。但是對於很大或很小的浮點數,一般用科學計數法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。

浮點數與整數之間轉換 [掌握]

在這裡插入圖片描述

複數 (complex) [瞭解]

  • 複數由 實數部分 和 虛數部分 構成,可以用 a + bj, 或者 complex(a,b) 表示,複數的 實部a 和 虛部b 都是浮點。

數學計算

  • 對於數學計算,除了前面提到過的簡單的加減乘除等等,更多的科學計算需要匯入 math 這個標準庫,它包含了絕大多數我們可能需要的科學計算函式。
    math.ceil(x)
    math.floor(x)
    math.pow(x)
    abs(x)
    round(x)
import math             # 匯入標準庫mathprint(math.ceil(4.1))   # 5:向上取整print(math.floor(4.5))  # 4:向下取整print(math.pow(2, 3))   # x**y  2**3a = -10print(abs(a))           # 列印取絕對值後的值# python3進行改良,不再是四捨五入,而是四捨六入五成偶print(round(4.1))       # 捨去為4print(round(4.5))       # 捨去為4print(round(4.6))       # 進1為5print(round(3.5))       # 4 5進1如果為偶數 則進1,否則捨去1234567891011121314

布林與空值


布林型別介紹 [掌握]

  • 比如我們拋硬幣,不是正面就是反面。那其實對於對與錯、0與1,都是傳統意義上的布林型別。
  • 但在Python語言中,布林型別只有兩個值,True 與 False。
  • 注意:首字母必須大寫,不能有其它的花式變型。

bool() 使用

  • 我們透過 python 內建的 bool() 函式來測試一個表示式的布林值的結果
  • 在這裡插入圖片描述
    在這裡插入圖片描述
"""
布林型別應用
"""print(2 > 3)    # False 2不大於3print(2 < 3)    # True 2小於3print(3 in [1, 2, 3])   # True  3在列表[1,2,3]print(3 == 9/3)     # True 3 == 3.0print(3 is 3.0)     # False 記憶體地址 3 != 3.0"""
布林函式
"""print(bool(True))     # Trueprint(bool(False))    # False# 數值:0 0.0的bool值為False,其餘的全為Trueprint(bool(1))        # Trueprint(bool(-1))       # Trueprint(bool(0))        # Falseprint(bool(0.0))      # False# 字串:只有空字串的bool值為False,其餘均為True。注意:含有空格的字串也是非空字串print(bool("yes"))    # Trueprint(bool(""))       # Falseprint(bool("  "))     # Trueprint(bool("0"))      # True# 列表print(bool([]))              # Falseprint(bool([1, 2, 3]))       # True# Noneprint(bool(None)) # False  None的布林值永遠為False"""
布林計算
"""print(True + 1) # 2print(False + 1) # 11234567891011121314151617181920212223242526272829303132333435363738394041

歸納:

  • 數值型別:0、0.0的 bool 值都為 False,其它的都為 True
  • 字串:空字串的 bool 值為 False,其它的都為 True。注意空格字串為 True
  • 列表:空列表的 bool 值為False,其它的都為 True。
  • None 的 bool 值永遠為 False
    在這裡插入圖片描述

布林型別運算

布林型別運算如下:

  • and 運算
  • or 運算
  • not 運算
  • 算術 運算,注意:把 True 看作1,而 False 看作 0

空值 介紹 [掌握]

  • 空值不是布林型別,是 Python 裡一個特殊的值,用 None 表示(首字母大寫)。
  • None 不能理解為0,因為0是整數型別,而 None 是一個特殊的值。None 也不是布林型別,而是 NoneType。
    在這裡插入圖片描述

** 字串 **


字串的小貼士~
字串中:print(“hello \n world”)
\n 用來表示換行 如果想列印 \n 則要新增轉義符 \ 如:print(hello \n world)
使用 三引號(文字格式) 可以保留文字樣式 如:換行、空格等

字串介紹 [掌握]

  • 字串是 Python 中最常用的資料型別之一,使用單引號或雙引號來建立字串,使用三引號建立多行字串。
    注意:
  • 字串的單引號與雙引號都是 成對 出現的,不能一邊單一邊雙。
  • 字串是 不可變 的 序列資料型別,不能直接修改字串本身,和數字型別一樣!

字串的儲存 [瞭解]

思考: 以下 數值 與 字串 儲存是一樣的嗎?
在這裡插入圖片描述
在這裡插入圖片描述
答案是不一樣的

儲存方式的介紹

  • CPU:速度快,儲存小
  • 硬碟:速度慢,儲存大
  • 記憶體:速度比CPU慢,但比硬碟快。儲存比CPU大,但比硬碟小。
  • 16G
  • 1G = 1024M
  • 1M = 1024KB
  • 1KB = 1024B
  • 1B = 8bit

字串的儲存

整數 在記憶體中佔 一個位元組,字串 不管中間多少內容都要 單獨儲存。
在這裡插入圖片描述

字串的下標 [重點掌握]

  • 由於字串是 序列資料結構 ,所以我們可以透過 下標 將字串中某個字母取出來。
  • 下標也可稱為 索引,預設從0開始。
# 取出 'e'In [1]: name = 'hello world'In [3]: name[1]Out[3]: 'e' # h e l l o   w o r l d# 0 1 2 3 4 5 6 7 8 9 10# 取出'e' 即下標[1]# 取出最後一個字元'd'In [1]: name = 'hello world'In [4]: name[-1]Out[4]: 'd'# 取出'd' 最後一個字元 即下標[-1]# 如果超出下標數值# 報錯:IndexError: string index out of range取出的值不可變123456789101112131415161718

字串的切片 [重點掌握]

在這裡插入圖片描述
在這裡插入圖片描述
注意:

  • 索引預設從0開始
  • 切片時左閉右開
  • 當是取單個字元的時候,索引超出範圍會報錯。而切片時不會報錯。
  • 步長不能為0,也不允許為浮點數
# 切片時左閉右開如:
In [1]: name = 'hello world'# 取 llo world l下標為2,d下標為10In [2]: name[2:10]Out[2]: 'llo worl'# 根據左閉右開In [9]: name[2:11]Out[9]: 'llo world'# 結束索引要+1# 取到最後一位也可以In [11]: name[2:]Out[11]: 'llo world'# 不寫為預設1234567891011121314151617

字串型別轉換 [掌握]

在這裡插入圖片描述

字串組成方式 [掌握]

  • 字串相加
  • 字串格式化
    %s %d %f
    str.format()
  • python3.6.4 引入  f''

字串常見操作 [熟悉]

S.find(sub) --> 返回該元素最小的索引
S.index(sub) --> 返回該元素最小的索引
S.replace(old, new[, count]) --> 替換
S.split(sep=None) --> 以  sep 來分割字串 , 並返回列表。  sep 預設為  None, 分割預設為空格
S.startswith(prefix[, start[, end]]) --> 判斷字串是否以字首開始,返回為  bool 值。
S.endswith(suffix[, start[, end]]) --> 判斷字串是否以尾綴結束,返回為  bool 值。
S.lower() --> 將字串全部轉為小寫
S.upper() --> 將字串全部轉為大寫
S.strip([chars]) --> 預設去掉字串左右的空格
S.isalpha() --> 判斷字串是否全為字母,返回的是  bool 值
S.isdigit() --> 判斷字串是否全為數字,返回的是  bool 值
S.isalnum() --> 判斷字串是否全為數字或者字母,不存在特殊字元,返回的是  bool 值
S.join(iterable) --> 將序列中的元素以指定的字元連線生成一個新的字串

"""
字串拼接
"""# print('1'+'2')    # 字串用+做拼接 '12'"""
字串格式化
"""name = "hansen"age = 20# %號格式需要考慮資料型別# %s --> str# %d --> decimal# %f --> floatprint("%s年齡為%d" % (name, age))# str.format() 好處1:不用考慮資料型別 好處2:可以切換位置# {} --> 佔坑print("{1}年齡為{0}".format(age, name))# f''  python3.6.4以上的版本# {} --> 佔坑print(f"{name}年齡為{age}")123456789101112131415161718192021222324252627

課後作業

作業1

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

作業2

掌握浮點數與整數之間轉換
如:
int(120.55) 輸出120
float(120) 輸出 120.0
布林型別

  • 比如我們拋硬幣,不是正面就是反面。那其實對於對與錯、0與1,都是傳統意義上的布林型別。

字串

  • 但在Python語言中,布林型別只有兩個值,True 與 False。
  • 注意:首字母必須大寫,不能有其它的花式變型。
  • 字串是 Python 中最常用的資料型別之一,使用單引號或雙引號來建立字串,使用三引號建立多行字串。
    注意:
  • 字串的單引號與雙引號都是 成對 出現的,不能一邊單一邊雙。
  • 字串是 不可變 的 序列資料型別,不能直接修改字串本身,和數字型別一樣!
    字串下標
  • 由於字串是 序列資料結構 ,所以我們可以透過 下標 將字串中某個字母取出來。
  • 下標也可稱為 索引,預設從0開始。

作業3

切片逆序  var[::-1]
在這裡插入圖片描述

作業4

在字串與字串之間 + 加號用作為 連線符
在這裡插入圖片描述

轉載至:https://zhe88.blog.csdn.net/article/details/111551685

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2744963/,如需轉載,請註明出處,否則將追究法律責任。

相關文章