1. 程式人生 > 其它 >python必會的知識基礎

python必會的知識基礎

一、運算子

  • 算術運算
    • 加、減、乘
      • 10/3 (得到浮點數)
      • 10//3(取整除 - 向下取接近商的整數)
    • 冪運算(x**y)
      • 冪 - 返回 x 的 y 次冪
    • 取餘/取模(%)
      print(10%3)
      1
      • 取模 - 返回除法的餘數
  • 賦值運算
    • =:簡單的賦值運算子

    • 拓展知識

      • +=:加法賦值運算子
      • -=:減法賦值運算子
      • *=:乘法賦值運算子
      • /=:除法賦值運算子
      • %=:取模賦值運算子
      • **=:冪賦值運算子
      • //=:取整除賦值運算子

      num = 0
      num += 1
      print(num)
      輸出:1

  • 比較運算子
    • >、<、== 、!= 、>=、<=
    • 讓計算機判斷條是真還是假,是真就返回 True,否則返回 False
  • 邏輯運算
    • 與 (and)
      print('邏輯運算:',num1 == 0 and num2 == 0)
      程式碼說明:讓計算機判斷 num1 ==0 和 num2 == 0 兩個條件是真還是假,都是真才返回 True,否則返回 False
    • 或(or)
      print('邏輯運算:',num1 == 0 or num2 == 0)
      程式碼說明:讓計算機判斷 num1 ==0 或者 num2 == 0 是真還是假,只要有一個是真的就返回 True,否則返回 False
    • 非(!)
      print('邏輯運算:',num1 != 0)
      程式碼說明:讓計算機判斷 num1 !=0 是真還是假,是真的就返回 True,否則返回 False

二、字串

  • 字串定義
    • 定義單行字串
      • 單引號
      • 雙引號
    • 定義多行字串
      • 三個單引號
      • 三個雙引號
    • 空字串
      str = ""
    • 轉換成字串
      str(object)
  • 字串操作
    • 字串訪問
      • 順序索引 0 開始
      • 倒序索引負 1 開始
    • 字串切片

      字串[起始索引,結束索引,步長]

      • 常用形式
        • 正序切片
          • 使用預設步長(1)
            string[start_index : stop_index]
          • 自定義步長
            string[start_index : stop_index : step]
          • 反轉
            string[::-1]
        • 倒序切片
          [start_index : stop_index : step]
          起,未,步長都為必傳,且都是負數
          • step>0 正數(或不傳):表示正序切片
          • step<0(負數):表示倒序切(索引值也要為負數)
      • 注意點
        • 一個空格佔一個索引位置

        • 正切預設起始索引 0,預設步長 1

        • 倒序切片預設起始索引-1,預設步長 1

        • 不寫結束索引預設為字串長度

        • 左閉右開(取起始索引的值,不取結束索引的值)

        • start_index : stop_index : step 超過列表索引值,返回空

        • step 引數中"+,-" 只是切片方式的標記,後面數字表示步長

        • 正序切片起始索引值必須小於結束索引值(建議記絕對值)

        • 正切就用正切的索引方式寫索引(0 開始)

        • 倒序切就用倒序的方式寫索引(-1 開始)

        • 程式碼演示
          """
          起始索引絕對值 > 結束索引絕對值
          正序:能取到值
          倒序:取不到值

          str_1[-3:-2]
          昨天說正序切片:起始索引絕對值 < 結束索引絕對值
          雖然能取到值,但是不好理解,這麼說目的就是讓大家不要用這種方式
          """
          str_1='123456789'
          str_2=str_1[-3:-2]
          str_3=str_1[-3:-2:-1]
          str_4=str_1[-1:2:-1]
          print('正序切片值:',str_2)
          print('倒序切片值:',str_3)
          print('倒序切片值:',str_4)
          輸出:
          正序切片值: 7
          倒序切片值:
          倒序切片值: 987654

    • 字串運算
      • 字串拼接
        • “+”
      • 重複輸出

    • 字串轉義
      • \n
    • 換行,列印字字串過程中遇到 \n 會換行列印
      print('hello\npython')
      輸出:
      hello
      python

      • \ 和 r
        • 在非特殊符號前面功能就是【續行符】
        • 在運算子或者特殊符號前面就是【關閉轉義】
          • 列印\n

            print('\n')# r raw

            print(r'\n')
            \n# 列印引號

            print(""")
            print('"')
            輸出:"

        • 列印空格
          print(\000)
    • \\

      • 單獨列印一個反斜槓是打印不出“\”的會報錯
        • 正確列印方式 # 通過轉義列印

          print('\')

          \

        • 夾在字串中間列印
          print('hello\hello')

    • 關閉轉義(r)

      • 關閉轉義,讓等具有特殊意義的字元失效,按照原本的意思輸出
        print(r'hello \n oython')
  • 字串常用方法
    • 單詞大小寫相關
      • upper:所有字母大寫
        string.upper()
      • lower:所有字母小寫
        string.lower()
      • 其他方法(瞭解)
        • capitalize:整個字串首字母大寫
          string.capitalize()
          new_str='python'
          print(new_str.capitalize())
          輸出:Python
        • title:每個單詞首字母大寫
          string.title()
          new_str='hello python'
          print(new_str.title())
          輸出:Hello Python
        • swapcase:大小寫互換
          string.swapcase()
          new_str='Hello Python'
          print(new_str.swapcase())
          輸出:hELLO pYTHON
    • 統計相關
      • count:返回子字串在字串中出現的次數
        string.count(sub, start= 0,end=len(string))

        • sub:搜尋的子字串
          • start:字串開始搜尋的位置。預設為第一個字元,第一個字元索引值為 0
        • end:字串中結束搜尋的位置。字元中第一個字元的索引為 0。預設為字串的最後一個位置
        str_1='1233333456789'
        new_str=str_1.count('3',0,len(str_1))
        print(new_str)
        輸出:5
      • find:預設只查詢第一個字串,如果包含子字串返回查詢到的第一個字串索引值,否則返回-1
        string.find(str, beg=0, end=len(string))

        • str:指定檢索的字串
        • beg:開始索引,預設為 0
        • end:結束索引,預設為字串的長度
        str_1='123456789'
        new_str=str_1.find('5',0,-1)
        print(new_str)
        4
      • rfind:返回字串最後一次出現的位置,如果沒有匹配項則返回 -1
        string.rfind(str,beg=0, end=len(string))

        • str:指定檢索的字串
        • beg:開始索引,預設為 0
        • end:結束索引,預設為字串的長度
        str_1='hello python'
        new_str=str_1.rfind('o')
        print(new_str)
        10
      • 判斷相關

        • string.isupper():判斷字串是否都是大寫,返回布林值
        • string.islower ():判斷字串是否都是小寫,返回布林值
        • string.isalnum():判斷字串是否由數字字母漢字組成,返回布林值
        • string.isalpha():判斷字串是否由字母漢字組成,返回布林值
        • string.isspace():判斷是否有空格,返回布林值
        • string.title():判斷字串是否每個單詞首字母大寫,返回布林值
    • 拆分&替換
      • string.split(sep=None, maxsplit=-1):字串拆分,預設空格拆分,可以指定字元切

        • sep:拆分字元
        • maxsplit=-1:最多進行多少次拆分,預設為-1 表示不做限制,0 表示不拆分
        • 拆分後的值作為一個 list 返回
        • 拆分過程中會丟棄拆分符號
          str="aafbbfccfddfee"
          new_str=str.split('f')
           ['aa','bb','cc','dd','ee']
      • string.join(iterable):將序列中的元素以指定的字元連線生成一個新的字串

        • iterable:元組、列表、字典、字串
        • string:iterable 內部元組間的連線符號
          # 用“-”連線
          new_string='-'.join(['I','love','python'])
          print(new_string)
           I-love-python
      • string.replace(old, new, count=None):替換字串,返回替換後的字串,不會修改原來的字串
        • old:需要替換的字元
        • new:替換後的字元
        • count:需要替換的個數,非必填,如不填,預設全部替換
          str_1 = '1233333333456789'
          # old, new, count=None
          new_str = str_1.replace('3', 'A', 1)
          print(new_str)
          輸出:12A3333333456789
      • 其他方法
        • string.splitlines(keepends=None):字串拆分,按換行符進行拆分

          • \r:回車、\n:換行
          • keeppends(False) 在輸出時是否去掉換行符(\r,\r\n,\n)預設 False,如果改為 True 則保留換行符
        • string.zfill(width):將 string 放右邊,返回指定長度的字串,長度不夠在前面填充 0

          • width:返回字串的長度
        • string.center(width, fillchar=None):將 string 放中間,返回指定長度的字串,長度不夠從字串兩邊一起填充指定字元
          • width:返回字串的長度
        • fillchar=None:指定填充字元,預設為 None,填充空格
        • string.rjust(width, fillchar=None) 返回指定長度的字串,從字串左邊填充指定字元
          • width:返回字串的長度
      • fillchar=None:指定填充字元,預設為 None,填充空格
    • string.ljust(width, fillchar=None) 返回指定長度的字串,從字串右邊邊填充指定字元
      • width:返回字串的長度
      • fillchar=None:指定填充字元,預設為 None,填充空格
  • 字串格式化輸出

    • %(% 相當於佔位符)
      • %s:格式化字串

        # 字串
        price = 'the price is %s' %('none')
        print(price)
        the price is none
        
        # 數值
        price = 'the price is %s' %(100)
        print(price)
        輸出:the price is 100
        • 注意點
          • 當 %('test')中 test 傳的不是 str 型別,是數字的時候,會將數字強制轉換成 str
      • %d:格式化數值

        price = 'the price is %d' %(-100)
        print(price)
        輸出:the price is -100
        • 注意點
          • 當 %(10)括號中傳的不是整數型別,且無法強制轉換成整數型別的時候,會報錯
          • 當 %(10)括號中傳的不是整數(int),是小數(float)的時候,會強制轉換成整數,小數部分會被抹掉
      • %f:格式化浮點數

        • %f:不指定精度預設保留 6 位小數,無小數位就補 0
          price = 'the price is %f' %(100)
          print(price)
          輸出:the price is 100.000000
        • %.2f:指定保留兩位小數
          price = 'the price is %.2f' %(100)
          print(price)
          輸出:the price is 100.00
      • 其他用法

        • 百分號"%",數字,點"."的用法
          • 數字在點前面:表示佔多少個字元位置

            • 數字在點後面:表示保留幾位小數
              """
              點前面的10表示該字浮點數前面佔10個字元位置
              點後面的4表示該浮點數保留4位小數
              """
              print("this number is %10.4f" %(10.999)
              輸出:this number is    10.9990
          • 橫槓“-”的用法

            • 佔位符數字前帶槓(-)表示字元左對齊
            print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Json",25,1.80))
            輸出:Name:Json       Age:25       Height:1.80
            • 佔位符數字前不帶槓(-)表示字元右對齊
              print ("Name:%10s Age:%8d Height:%8.2f"%("Json",25,1.80))
              Name: JSON Age: 25 Height: 1.80
      • format()函式

        • 按順序取值
          print("my name is {} age {}".format('老王',20))
          輸出:my name is 老王 age 20
        • 按索引取值
          print("my name is {1} age {0}".format('老王',20))
          輸出:my name is 20 age 老王
        • 按關鍵字取值
          print("my name is {name} age {age}".format(age=20,name='老王'))
          輸出:my name is 老王 age 20
        • 調整精度
          # .表示在小數點後面進行運算
          print('{:.2f}'.format(12.123456))
          輸出:12.12
        • 百分比格式化
          # . 表示在小數點後面進行運算
          print("percent is {:.3%}".format(0.67899))
          輸出:percent is 67.899%
          
          print("percent is {:%}".format(0.67899))
          輸出:percent is 67.899000%
          
          print("percent is {:3%}".format(0.67899))
          輸出:percent is 67.899000%
        • 其他用法
          • 進位制轉換
            # b:二進位制; o: 八進位制;x:十六進位制)
            print('{:b}'.format(10))
            輸出:1010
          • 千位分隔符
            print("{:,}".format(1234536789))
             輸出:1,234,536,789
      • f"{}"

        name='老王'
        age=20
        print(f"my name is {name} age:{age}")
        輸出:my name is 老王 age 20



作者:haili
連結:http://testingpai.com/article/1617353212847
來源:測試派
協議:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

學而不思則罔,思而不學則殆