python 資料類型,python

來源:互聯網
上載者:User

python 資料類型,python
資料類型單位換算

  • 最小的單位為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

  • 十六進位

    • 基數0~9、A~F,逢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:
>
> • 0~9:48~57
>
> • A~Z:65~90
>
> • a~z:97~122

- 列表(list):通過[]定義,裡面可以存放任意類型的資料

- 取值:lt[0]、lt[-1]
- 列表是可以修改的,lt[1] = '小敏'
- 存在越界問題
- 也可以進行 '+' 和 '*' 的運算
- 也可以進行切片操作
- lt[:] = [],表示清空列表
- lt[:2] = [],刪除前兩個元素

- 元組(tuple):通過()定義,其他動作與列表相同

- 元組不可修改
- 當只有一個元素時,元素後要添加一個逗號

- 集合(set):使用{}定義,

- 空的集合不能使用大括弧定義(留給字典用的),使用set()定義
- 集合是不可修改
- 集合中的元素時無序的
- 集合中的元素不能重複
- 簡單使用

```python
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))

    不必深究變數的地址問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.