<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                字符串類型是編程語言里非常重要的數據類型,因為幾乎所有的程序主要做的事情就是處理字符串,這個隨著大家的學習會有深入的體會。 ## 字符串的定義 python中字符串(str)是使用單引號,雙引號,三引號包裹起來的字符的序列,用來表示文本信息。 ```python >>> a = 'a' # 單引號 >>> b = "bc" # 雙引號 >>> print(type(a), type(b)) <class 'str'> <class 'str'> ``` 使用單引號和雙引號進行字符串定義沒有任何區別。 當單引號是字符串的一部分時用雙引號定義字符串,反之亦然。 但個人建議一般情況下使用單引號定義字符串,因為不需要按`shift`鍵,方便。當然用雙引號也沒有什么不好,但盡量保持一致。 ```python >>> print('我最近看了"平凡的世界"') 我最近看了"平凡的世界" >>> print("我最近看了'平凡的世界'") 我最近看了'平凡的世界' ``` 一對單引號或雙引號只能定義單行字符串,三引號可以用來創建多行表示的字符串。 ```python >>> content = '''窗前明月光,疑是地上霜; 舉頭望明月,低頭思故鄉。''' >>> print(content) 窗前明月光,疑是地上霜; 舉頭望明月,低頭思故鄉。 ``` 三單引號和三雙引號也沒有本質區別。三雙引號一般用來做多行注釋,函數,類定義時的說明文檔。 ```python """ 我是多行注釋 函數,類定義的說明文檔 后面我們再說 """ ``` 字符串還有一個很重要的概念`空字符串`,表示字符串中沒有任何字符,定義如下: ```python >>> a = '' >>> print(a) ``` 直接寫兩個引號,中間沒有空格,打印時沒有任何顯示。空字符串的概念非常重要,用來表示文本輸出為空。 ## 字符串的索引 序列類型中的元素都用`索引`來表示它在序列中的位置。 單個字符在字符串中的位置叫`索引`,也叫`下標`。 ![1659343896765](https://wcflove.gitee.io/images/1659343896765.png) 索引是從0開始的整數序列,0表示字符串的第一個位置,以此類推。 通過索引可以獲取字符串中的單個字符,語法如下: ```bash str[index] ``` ```python >>> s = 'Hello,world!' >>> print(s[0]) H ``` 索引還可以使用負數表示,`-1`表示倒數第一個字符,`-2`表示倒數第二個字符,以此類推。 ```python >>> s = 'Hello,world!' >>> print(s[-1]) ! >>> print(s[-2]) d ``` ## 字符串的切片 獲取序列中的子序列叫切片。 字符串的切片就是獲取字符串的子串。字符串切片的語法如下: ```bash str[start:end:step] ``` - `start`表示切片的開始索引,在切片的結果中包含開始索引的字符 - `end`表示結束索引,在切片的結果中不包含結束索引的字符 - `step`是步長,表示每隔幾個字符切片,當步長為1是可以省略。 看下面的案例: ```python >>> s = '012345678' >>> print(s[1:5]) # 包頭不包尾 1234 ``` 從頭開始切片可以省略`start` ```python >>> print(s[:5]) 01234 ``` 切到末尾包含末尾可以省略`end` ```python >>> print(s[1:]) 12345678 ``` 當步長不為1時 ```python >>> print(s[1::2]) 13579 ``` 特別的,當步長為負數時,表示反向切片,切片會從后往前進行,例如: ```python >>> print(s[1::-1]) 10 >>> print(s[9::-1]) 876543210 ``` ## 字符串拼接 python中序列可以進行加法運算實現拼接。所以字符串可以通過`+`進行拼接: ```python >>> a = 'hello' >>> b = ' ' >>> c = 'world!' >>> print(a+b+c) hello world! ``` 既然可以加法運算,那么一般也可以和整數進行乘法運算,實現重復拼接的效果: ```python >>> print('*' * 10) ********** ``` ## 字符串和數值的相互轉化 `1`和`'1'`不同,`1.2`和`'1.2'`也不相同,但是它們可以相互轉化。 整數和字符串之間的轉化 ```python >>> int('1') # 整數字符串轉化為整數 1 >>> str(1) # 整數轉化為字符串 '1' ``` 浮點數和字符串之間的轉化 ```python >>> float('1.2') 1.2 >>> str(1.2) '1.2' ``` 將數值字符串轉化為對應的數值類型時,格式一定要正確,否則會拋出異常 ```python >>> int('1.2') # '1.2'不是整數字符串運行會拋出異常 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '1.2' ``` 注意:如果你用`print`函數打印整數和整數字符串輸出形式是一樣的。 ```python >>> print(1) 1 >>> print('1') 1 ``` ## 轉義符 除了可見字符外,還有很多不可見的特殊字符,例如回車,換行,制表符等。這些字符是通過反斜杠`\`和其他字符組合來表示,稱為`轉義`,所以`\`也稱為轉義符。常見的轉義字符如下表: | 組合 | 符號 | | :--- | :--------- | | `\\` | 反斜杠符號 | | `\'` | 單引號 | | `\"` | 雙引號 | | \a | 響鈴 | | \n | 換行 | | \t | 橫向制表符 | | \r | 回車 | | \f | 換頁 | ```python >>> print('窗前明月光,\n疑是地上霜。') # 輸出換行 窗前明月光, 疑是地上霜。 >>> print('\'') # 輸出單引號本身 ' ``` 其他的轉義字符大家可以自行練習。 可以通過前導符`r`,強制不轉義將字符串原樣輸出: ```python >>> print(r'窗前明月光,\n疑是地上霜。') # 不轉義 窗前明月光,\n疑是地上霜。 ``` ``` 再給大家分享一個學習小技巧,我以前分不清正斜杠和反斜杠。直到有一天,撇`/`就是正,捺`\`就是反。 是不是秒記。 嘿嘿,不用謝! ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看