1. 程式人生 > >python基礎01—基礎數據類型

python基礎01—基礎數據類型

[1] 換行 統計 設計 ascii world 並集 格式 amp

數據類型

單位換算

  • 最小的單位為bit,表示一個二進制的0或1,一般使用小寫的b表示
  • 存儲的最小單位為字節(Byte),1B = 8b
  • 1024B = 1KB
  • 1024KB = 1MB
  • 1024MB = 1GB
  • 1024GB = 1TB
  • 1024TB = 1PB
  • 2^32 = 2^10 * 2^10 * 2^10 * 2^2 = 4GB

進制轉換

  • 十進制
    • 基數為0~9,逢10進1
    • 實例:123 = 1 * 10^2 + 2 * 10^1 + 3 * 10^0 = 100 + 20 + 3 = 123
  • 二進制
    • 基數0和1,逢2進1,python中以‘0b‘開頭
    • 示例:0b110100 = 2^5 + 2^4 + 2^2 = 32 + 16 + 4 = 52
    • 十進制轉二進制:除2取余,倒序書寫
      • 22 = 0b10110
  • 八進制
    • 基數0~7,逢8進1,python中以‘0o‘開頭
    • 示例:0o123 = 1 * 8^2 + 2 * 8^1 + 3 * 8^0 = 64 + 16 + 3 = 83
    • 八進制轉二進制:八進制1位表示3位二進制
      • 0o123 = 0b 001 010 011
  • 十六進制
    • 基數09、AF,逢16進1,python中以‘0x‘開頭
    • 示例:0xAB = 10 * 16^1 + 11 * 16^0 = 160 + 11 = 171
    • 十六進制轉二進制:十六進制1位表示4位二進制
      • 0xABC = 0b 1010 1011 1100
  • 計算機中的數據是以哪種進制存儲的?為什麽?
    • 二進制,因為計算機只識別二進制,具體原因如下:
    • 穩定性高(只有0和1),成本低(技術上容易實現),與生活中的真假邏輯相吻合
  • 計算機中的數據是如何存儲的?
    • 如何存儲負數?
      • 最高位作為符號位,0表示正數,1表示負數
      • 雖然犧牲了最不常用的最高位,但是解決了負數問題,並且簡化了硬件設計(節約成本)
    • 原碼、反碼、補碼?
      • 正數的三碼一致,只有負數才有反碼和補碼
      • 反碼等於原碼的符號位不變,其余位取翻
      • 補碼等於對於的反碼加1
      • 計算機中的數據都是以補碼的形式存在

數據類型

  • 數據類型是為了處理不同的運算而存在,

  • python中的數據類型有:整型、浮點、字符串、列表、元組、字典、集合、空

  • 整型(int):就是數學中的整數

  • 浮點(float):就是數學中的小數

    # 小數(浮點數)
    b = 3.14
    print(type(b))
    
    # 科學計數法
    c = 3.14e-3
    print(c)
    
  • 布爾(bool):與生活中的真假邏輯相對應

    # bool類型,只有兩個值,True和False
    d = False
    print(type(d))
    
  • 空(NoneType):是一個特殊的類型,只有一個值(None)

  • 字符串(str):用引號括起來的一串字符

    • 單引號或雙引號都可以,也可以使用三個單引號或雙引號
    • 單引號中的單引號及雙引號中的雙引號都需要轉義
      • 轉義字符:換行(\n)、制表(\t)等
      • 有時‘‘也需要轉義
    • 一行顯示不完時,換行處理
    g = ‘hello‘     ‘ world‘
    print(g)
    
    h = ‘hello world‘
    print(h)
    
    i = ‘‘‘
    abc
    def
    123
    ‘‘‘
    print(i)
    
    • 統計字符個數
    # 無論什麽字符,都是一個長度
    s = ‘hello你好‘
    print(len(s))
    
    • 字符串拼接
    # 直接拼接
    s2 = ‘hello‘ + ‘world‘
    print(s2)
    
    # 指定的字符串重復若幹次,然後拼接一起
    s3 = ‘abc‘ * 3
    print(s3)
    
    • 提取單個字符
    s4 = ‘123456‘
    # 從開頭提取,下表從0開始
    print(s4[0])
    # 從末尾提取,下表從-1開始
    print(s4[-2])
    
    • 字符串切片(提取一段)
    s5 = ‘abcdefg‘
    # s[起始下表:結束下表],包括起始下表元素,不包括結束下表元素
    print(s5[0:3])
    # 從開頭提取到指定位置
    print(s5[:4])
    # 從指定下表提取到結尾
    print(s5[3:])
    # 下表為1開始,提取到倒數第二個,不包括倒數第二個
    print(s5[1:-2])
    # 提取最後4個字符
    print(s5[-4:])
    # 提取全部
    print(s5[:])
    # 指定步進值,默認為1
    print(s5[::2])
    # 字符串逆序
    print(s5[::-1])
    
    • 格式化
    name = ‘goudan‘
    like = ‘wangdahua‘
    age = 18
    
    print(‘我叫%s,暗戀%s,她今年%d歲了‘ % (name, like, age))
    
    # 字符 => ASCII
    print(ord(‘a‘))
    # ASCII => 字符
    print(chr(65))
    
    print(‘我叫{},喜歡{},今年{}歲了‘.format(name, like, age))
    print(‘我叫{2},喜歡{1},今年{0}歲了‘.format(name, like, age))
    print(‘我叫{nm},喜歡{lk},今年{a}歲了‘.format(nm=name, lk=like, a=age))
    

%s:給字符串占位的

%d:給整型數據占位

%f:給浮點數占位

%c:給字符占位

? ASCII:

? 09:4857

? AZ:6590

? az:97122

  • 列表(list):通過[]定義,裏面可以存放任意類型的數據

    • 取值:lt[0]、lt[-1]
    • 列表是可以修改的,lt[1] = ‘小敏‘
    • 存在越界問題
    • 也可以進行 ‘+‘ 和 ‘*‘ 的運算
    • 也可以進行切片操作
    • lt[:] = [],表示清空列表
    • lt[:2] = [],刪除前兩個元素
  • 元組(tuple):通過()定義,其他操作與列表相同

    • 元組不可修改
    • 當只有一個元素時,元素後要添加一個逗號
  • 集合(set):使用{}定義,

    • 空的集合不能使用大括號定義(留給字典用的),使用set()定義
    • 集合是不可修改
    • 集合中的元素時無序的
    • 集合中的元素不能重復
    • 簡單使用
    s = {‘李白‘, ‘杜甫‘, ‘白居易‘, ‘蘇軾‘, ‘陶淵明‘, ‘李白‘}
    s2 = {‘李白‘, ‘李商隱‘, ‘杜牧‘, ‘蘇軾‘}
    print(type(s))
    print(s)
    # 交集
    print(s & s2)
    # 並集
    print(s | s2)
    # 差集
    print(s - s2)
    print(s2 - s)
    
    # 空的集合這樣定義,不能使用{}
    s3 = set()
    print(type(s3))
    
  • 字典(dict):通過{}定義

    • 元素是由鍵值對組成的
    • 鍵和值之間使用‘:‘連接
    • 字典中的鍵是唯一的,值可以是任意的
    • 字典是可變的
    • 簡單使用:
    d = {‘name‘: ‘xiaoming‘, ‘age‘: 18}
    print(d)
    print(type(d))
    
    # 根據鍵提取對應的值
    print(d[‘name‘])
    
    # 鍵不存在時會報錯
    # print(d[‘abc‘])
    # 鍵存在返回對應的值,鍵不存在返回None,也可以自定義默認值
    print(d.get(‘abc‘, ‘默認值‘))
    
    # 沒有則添加鍵值對
    # d[‘hello‘] = ‘world‘
    # 已存在則修改
    d[‘name‘] = ‘xiaofang‘
    # 刪除元素
    # del d[‘name‘]
    # print(d)
    
    # len返回的是鍵值對的個數
    print(len(d))
    
  • 強制類型轉換

    int()     # 轉化為整型
    float()       # 轉換為浮點數
    str()     # 轉換字符串
    list()        # 轉換為列表
    tuple()       # 轉換為元組
    set()     # 轉換為集合
    dict()        # 轉換為字典
    
    l = [(‘name‘, ‘xiaoming‘), (‘age‘, 18)]
    # 將列表轉化為字典
    d1 = dict(l)
    print(d1)
    

    列表的去重,列表 => 集合 => 列表

  • 獲取變量地址

    a = 10
    print(id(a))
    

python基礎01—基礎數據類型