python復(fù)習(xí)第2天:python基本數(shù)據(jù)類型(上)


title: python復(fù)習(xí)100天--第2天
date: 2020-02-21 15:00:24
tags:
- python
- 基礎(chǔ)
categories: python復(fù)習(xí)
top: 3


Python基本數(shù)據(jù)類型

數(shù)字

  • 類型:int击吱、float、bool座云、complex

  • 數(shù)字的四則運(yùn)算

    eg:

    print(1 + 2)  # 整數(shù)相加得整數(shù):3
    print(2.1 - 1.1)  # 浮點數(shù)相減得浮點數(shù):1.0
    print(1 * 2)  # 整數(shù)相乘得整數(shù):2
    print(2 / 1)  # 整數(shù)相除得浮點數(shù):2.0
    print(9 // 2)  # 取整除法:4
    print(9 % 2)  # 求余除法:1
    print(3 ** 3)  # 求3的3次方:27
    

    一般來說,同類型的數(shù)字進(jìn)行四則運(yùn)算會得到同類型的數(shù)字,但是除法不是。因為除法可能會出現(xiàn)小數(shù)婆赠,所以一般在進(jìn)行除法運(yùn)算的時候绵脯,Python會自動把整數(shù)變成浮點數(shù)之后佳励,再進(jìn)行運(yùn)算,所以蛆挫,整數(shù)相除是浮點數(shù)赃承。

  • 數(shù)字的類型轉(zhuǎn)換。

    eg:

    print(1 + 1.1)  # 整數(shù)加小數(shù)得小數(shù):2.1
    print(1 + True)  # 整數(shù)加布爾型得整數(shù):2
    print(1 + (2 + 3j))  # 整數(shù)加復(fù)數(shù)得復(fù)數(shù):3+3j
    

    python會自動把低精度的往高精度上轉(zhuǎn)換悴侵。如果是整數(shù)遇到了浮點數(shù)瞧剖,整數(shù)自動轉(zhuǎn)浮點數(shù)(浮點數(shù)能存儲的東西多);同樣的可免,如果是整數(shù)遇到了布爾型抓于,布爾型自動轉(zhuǎn)整數(shù)(整數(shù)儲存的數(shù)據(jù)比布爾型多)。整數(shù)與復(fù)數(shù)的轉(zhuǎn)換規(guī)則也是如此浇借。

    # 布爾型的轉(zhuǎn)換規(guī)則
    """
    布爾轉(zhuǎn)整數(shù)
    Ture ->  1
    False -> 0
    """
    print(int(True))  # 布爾轉(zhuǎn)整數(shù):1
    print(int(False))  # 布爾轉(zhuǎn)整數(shù):0
    # int函數(shù)可以把其它數(shù)據(jù)類型轉(zhuǎn)成整數(shù)
    
    """
    整數(shù)轉(zhuǎn)布爾
    非零-> True
    0 -> False
    """
    print(bool(10))  # 整數(shù)轉(zhuǎn)布爾:True
    print(bool(-10))  # 整數(shù)轉(zhuǎn)布爾:Ture
    print(bool(0))  # 整數(shù)轉(zhuǎn)布爾:False
    

    注:int函數(shù)可將數(shù)據(jù)轉(zhuǎn)整數(shù)捉撮,float函數(shù)可以將數(shù)據(jù)轉(zhuǎn)浮點型,bool函數(shù)將數(shù)據(jù)轉(zhuǎn)布爾型妇垢,complex函數(shù)將數(shù)據(jù)轉(zhuǎn)復(fù)數(shù)巾遭。

字符串

  • 字符串切片:上節(jié)已講肉康。具體可以看https://www.vbahome.cn

  • 關(guān)于反斜杠轉(zhuǎn)義:如果不想讓它轉(zhuǎn)義,可以加一個r灼舍,代表raw吼和,原生不動。這樣反斜杠就不會轉(zhuǎn)義了骑素。

    eg:

    print(r'1\n2')  # r代表不轉(zhuǎn)義炫乓,此處輸出:1\n2
    
  • 常用字符串內(nèi)置函數(shù)

    • len:用于計算字符串的長度

      eg:

      print(len('你好瑪利亞'))  # 輸出結(jié)果為5
      
  • 常用字符串內(nèi)置方法

    • join: 可以使用特定的字符將一個序列拼(通常為元組和列表)接成一個字符串

      eg:

      list1 = ['你好', ',', '瑪利亞', '!']  # 后面會講list,這里只是一個示意
      a = ''.join(list1)  # 利用空字符串把列表拼接成一個字符串
      print(a)  # 輸出結(jié)果:你好,瑪利亞!
      
    • replace:用于查找特定的字符串并替換成新的字符串

    • a = '我愛你献丑,湖南'
      a = a.replace('湖南', '中國')  # 將湖南替換為中國厢岂,并且重新賦值給a
      print(a)  # 輸出結(jié)果: 我愛你,中國
      
    • find:查找某個字符串是否在該字符串內(nèi)阳距,默認(rèn)只返回第一個匹配的字符串的第一個字符所在位置.

      a = 'Hello world,Hello China'
      result1 = a.find('Hello')  # 找Hello的位置,結(jié)果: 0
      print(result1)
      
    • split:以特定字符串進(jìn)行切割塔粒,常用于語句分詞,分詞后的結(jié)果是一個列表.

      eg:

      a = 'Hello world,Hello China'
      print(a.split(' '))  # 以空格進(jìn)行分詞
      # 輸出結(jié)果:['Hello', 'world,Hello', 'China']
      
    • title: 將字符串標(biāo)題化筐摘,也就是所有單詞首字母大寫

      eg:

      a = 'hello world,hello china'
      print(a.title())  # 標(biāo)題化輸出
      # 輸出結(jié)果:Hello World,Hello China
      
    • upper:將單詞的所有字母都變成大寫

      eg:

      a = 'hello world,hello china'
      print(a.upper())  # 小寫單詞轉(zhuǎn)大寫
      # 輸出結(jié)果:HELLO WORLD,HELLO CHINA
      
    • lower: 將所有單詞大寫轉(zhuǎn)小寫

      a = 'HELLO WORLD,HELLO CHINA'
      print(a.lower())  # 大寫單詞轉(zhuǎn)小寫
      # 輸出結(jié)果:hello world,hello china
      
    • startwith: 是否以某個字符串開頭卒茬,返回值為布爾型

      eg:

      a = 'hello world,hello china'
      print(a.startswith('hello'))  # 判斷是否以hello開頭
      # 輸出結(jié)果:True
      
    • endswith: 是否以某個字符結(jié)尾,返回值為布爾型

      eg:

      a = 'hello world,hello china'
      print(a.endswith('china'))  # 判斷是否以hello開頭
      # 輸出結(jié)果:True
      
    • strip: 刪除兩邊多余的字符咖熟,默認(rèn)是刪除空格

      a = '  hello world,hello china  '
      print(a.strip())  # 刪除兩邊的空格
      print(a.strip().strip('a'))  # 刪完空格再刪兩邊的字符a
      # 輸出結(jié)果:
      """
      hello world,hello china
      hello world,hello chin
      """
      
    • encode:將字符串編碼圃酵,默認(rèn)是utf-8

      eg:

      a = '  hello world,hello china  '
      print(a.encode('utf-8'))  # 默認(rèn)是utf-8,可以不填
      # 輸出結(jié)果
      """
      b'  hello world,hello china  '
      """
      

      上面多了一個b,代表是二進(jìn)制格式.

    • decode:將二進(jìn)制解碼成字符串,默認(rèn)用utf-8進(jìn)行解碼

      eg:

      a = b'  hello world,hello china  '
      b = b'\xe6\x88\x91\xe7\x88\xb1Python'
      print(a.decode())  # 默認(rèn)是utf-8,可以不填
      print(b.decode('utf-8'))
      # 輸出結(jié)果
      """
        hello world,hello china  
      我愛Python
      """
      
  • 字符串的復(fù)制

    • 字符串常用*號代表復(fù)制,后面接數(shù)字代表復(fù)制多少次

      eg:

      a = 'hello'
      print(a*10)
      # 輸出結(jié)果
      """
      hellohellohellohellohellohellohellohellohellohello
      """
      
  • 字符串轉(zhuǎn)數(shù)字

    • 如果是數(shù)字構(gòu)成的字符串,可以將該字符串轉(zhuǎn)成浮點型數(shù)字

    • 注意:字符串只能轉(zhuǎn)浮點型數(shù)字馍管,不能轉(zhuǎn)整數(shù)形

      eg:

      a = '1.0'
      b = '2'
      print(type(a))
      print(type(b))
      c = float(a)
      d = float(b)
      print(type(c))
      print(type(d))
      # 輸出結(jié)果
      """
      <class 'str'>
      <class 'str'>
      <class 'float'>
      <class 'float'>
      """
      
  • 數(shù)字轉(zhuǎn)字符串

    • 直接用str函數(shù)即可

      eg:

      a = 1
      print(type(1))
      b = str(1)
      print(type(b))
      # 輸出結(jié)果
      """
      <class 'int'>
      <class 'str'>
      """
      

列表

  • list:代表多個有序數(shù)據(jù)的集合

  • 列表是有序的, 每個列表元素都有一個“序號”郭赐,一般稱為索引

  • 索引是從零開始,然后依次加1

  • 想要獲取列表的元素,需要用中括號加索引的位置

    eg:

    a = [1, 2, 3, 4]
    print(a[1])  # 取第二個索引所在的元素值
    # 輸出結(jié)果
    """
    2
    """
    
  • 列表的創(chuàng)建方法

    • 法一: 和上面一樣用中括號然后加逗號隔開
    • 法二: 利用list函數(shù)生成列表
    a = list()  # 創(chuàng)建一個空列表
    b = list('ashofsdo')  # 將字符串變成列表,默認(rèn)一個字符串一個列表元素
    print(a)
    print(b)
    print(type(a))
    print(type(b))
    # 輸出結(jié)果
    """
    []
    ['a', 's', 'h', 'o', 'f', 's', 'd', 'o']
    <class 'list'>
    <class 'list'>
    """
    
  • 列表常搭配的函數(shù):range

    • range函數(shù)用于生成一個數(shù)字范圍,一般以零開始,需要用list轉(zhuǎn)成列表
    • range生成的數(shù)字范圍可迭代确沸,常用于循環(huán)(此處不需要過于理解)

    eg:

    a = range(10)  # 生成一個從零開始到10結(jié)束的范圍,不包括10
    a_list = list(a)  # 將該范圍轉(zhuǎn)為列表
    print(a)
    print(type(a))
    print(a_list)
    print(type(a_list))
    # 輸出結(jié)果
    """
    range(0, 10)
    <class 'range'>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    <class 'list'>
    """
    
    • range可以自定義開頭位置捌锭,用逗號隔開

    eg:

    a = list(range(1, 10))  # 從1開始,到10結(jié)束,不包括10
    print(a)
    # 輸出結(jié)果
    """
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    """
    
    • range可以自定義步長,默認(rèn)是1,可以加一個逗號,第二個逗號右邊表示步長.

    eg:

    a = list(range(1, 30, 3))  # 從1開始,到30結(jié)束,不包括30,每隔3取一個
    print(a)
    # 輸出結(jié)果
    """
    [1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
    """
    
  • 列表的切片

    • 切片方法和字符串一樣的
    • 切片后可以重新賦值(注意:只有字符串、列表,罗捎、字典可以重新賦值)

    eg:

    a = list(range(1, 10))  # 從1開始,到30結(jié)束,不包括30,每隔3取一個
    print('原來的a為: \n', a)
    a[0] = 100  # 對a[0]重新賦值
    print('重新賦值后的a為:\n', a)
    print(a[0:5])  # 取第一個到第5個值,不包括a[5],也就是不包括第6個值
    print(a[0:7:2])  # 從第一個取到第7個,不包括a[7],每隔兩個取一個
    print(a[-5: -1: 2])  # 從倒數(shù)第五個取到倒數(shù)第一個,不包括倒數(shù)第一個,每隔兩個取一個
    # 輸出結(jié)果
    """
    原來的a為: 
     [1, 2, 3, 4, 5, 6, 7, 8, 9]
    重新賦值后的a為:
     [100, 2, 3, 4, 5, 6, 7, 8, 9]
    [100, 2, 3, 4, 5]
    [100, 3, 5, 7]
    [5, 7]
    """
    
  • 列表的常用函數(shù)

    • len:計算列表中元素的個數(shù)

      eg:

    a = list(range(10))
    print(len(a))

    輸出結(jié)果

    """
    10
    """

    
    - max:找到列表中的最大值
    
    - min函數(shù)代表找到列表中的最小元素
    
    eg:
    
    ```python
    a = list(range(10))
    print(max(a))
    print(min(a))
    # 輸出結(jié)果
    """
    9
    0
    """
    
  • 列表的常用方法

    • append:末尾追加元素

      eg:

      a = list(range(10))
      a.append(11)
      print(a)
      # 輸出結(jié)果
      """
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
      """
      
    • copy函數(shù)观谦,常用于列表的復(fù)制,防止新列表更新后污染舊的列表桨菜。

      eg:

      a = list(range(10))
      b = a.copy()  # 復(fù)制列表a
      b[0] = 100
      print(a)
      print(b)
      # 輸出結(jié)果
      """
      

    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [100, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    """

    
    - insert: 在置頂?shù)奈恢貌迦朐?
    eg:
    ```python
    a = list(range(10))
    a.insert(4, 100)  # 在第五個索引后面插入100
    print(a)
    # 輸出結(jié)果
    """
    [0, 1, 2, 3, 100, 4, 5, 6, 7, 8, 9]
    """
    
    • index: 找到某個元素所匹配的索引位置

      eg:

      a = ['張三', '李四', '王二小']
      print(a.index('李四'))
      b = [2, 1, 5, 6, 9, 4]
      print(b.index(max(b)))  # 先找到b的最大值豁状,再找到最大值對應(yīng)的索引
      # 輸出結(jié)果
      """
      1
      

    4
    """

    
    - sort: 對列表進(jìn)行排序
    
    eg:
    
    ```python
    b = [2, 1, 5, 6, 9, 4]
    b.sort()  # 對b進(jìn)行排序
    print(b)  
    # 輸出結(jié)果
    """
    [1, 2, 4, 5, 6, 9]
    """
    
    • reverse:對列表進(jìn)行反轉(zhuǎn)

      eg:

      b = [2, 1, 5, 6, 9, 4]
      b.reverse()  # 對b進(jìn)行反轉(zhuǎn)
      print(b)
      # 輸出結(jié)果
      """
      [4, 9, 6, 5, 1, 2]
      """
      
    • pop: 刪除元素,默認(rèn)刪除最后一個元素

      eg:

      b = [2, 1, 5, 6, 9, 4]
      print('原始的b列表長這樣:\n', b)
      b.pop()  # 刪除最后一個元素
      print('刪除最右邊的元素后\n', b)
      b.pop(0)  # 刪除第一元素
      print('刪除第一個元素后的樣子:')
      print(b)
      # 輸出結(jié)果
       """
      原始的b列表長這樣:
       [2, 1, 5, 6, 9, 4]
      刪除最右邊的元素后
      [2, 1, 5, 6, 9]
      刪除第一個元素后的樣子:
      [1, 5, 6, 9]
      """
      
    • remove函數(shù)倒得,用于刪除特定的元素泻红,pop是刪索引,注意兩者區(qū)別霞掺。

      eg:

      b = [2, 1, 5, 6, 9, 4]
      print('原始的b列表長這樣:\n', b)
      b.remove(5)  # 刪除元素5
      print('第一次刪除后\n', b)
      b.remove(6)  # 刪除元素6
      print('第二次刪除后:')
      print(b)
      # 輸出結(jié)果
      

    """
    原始的b列表長這樣:
    [2, 1, 5, 6, 9, 4]
    第一次刪除后
    [2, 1, 6, 9, 4]
    第二次刪除后:
    [2, 1, 9, 4]
    """

    
    
    

方法和函數(shù)的區(qū)別

  • 方法是一種特殊的函數(shù)

  • 方法屬于某一個對象(數(shù)字谊路、列表、字符串都可以看成對象根悼,后面會仔細(xì)講)凶异,而函數(shù)可以單獨存在

    eg:如列表的pop方法只有列表才可以用蜀撑,而max函數(shù)可以直接使用

  • 方法使用:obeject.funciton(),函數(shù)的使用:funciton()

  • 方法包含的參數(shù)中,一定有一個參數(shù)是對象本身

    eg:如sort方法實際就是對它自身進(jìn)行排序,可以看成是list.sort(self)剩彬,self代表它本身.
    博客首發(fā):https://www.vbahome.cn酷麦,歡迎關(guān)注。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喉恋,一起剝皮案震驚了整個濱河市沃饶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轻黑,老刑警劉巖糊肤,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氓鄙,居然都是意外死亡馆揉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門抖拦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來升酣,“玉大人,你說我怎么就攤上這事态罪∝眩” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵复颈,是天一觀的道長绩聘。 經(jīng)常有香客問我,道長耗啦,這世上最難降的妖魔是什么凿菩? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮芹彬,結(jié)果婚禮上蓄髓,老公的妹妹穿的比我還像新娘。我一直安慰自己舒帮,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布陡叠。 她就那樣靜靜地躺著玩郊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枉阵。 梳的紋絲不亂的頭發(fā)上译红,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機(jī)與錄音兴溜,去河邊找鬼侦厚。 笑死耻陕,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刨沦。 我是一名探鬼主播诗宣,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼想诅!你這毒婦竟也來了召庞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤来破,失蹤者是張志新(化名)和其女友劉穎篮灼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體徘禁,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡诅诱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了送朱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逢艘。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖骤菠,靈堂內(nèi)的尸體忽然破棺而出它改,到底是詐尸還是另有隱情,我是刑警寧澤商乎,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布央拖,位于F島的核電站,受9級特大地震影響鹉戚,放射性物質(zhì)發(fā)生泄漏鲜戒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一抹凳、第九天 我趴在偏房一處隱蔽的房頂上張望遏餐。 院中可真熱鬧,春花似錦赢底、人聲如沸失都。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粹庞。三九已至,卻和暖如春洽损,著一層夾襖步出監(jiān)牢的瞬間庞溜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工碑定, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留流码,地道東北人又官。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像漫试,于是被迫代替她去往敵國和親六敬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容