上節課我們學習了數字,數字和我們學習的數學是緊密結合的。而這節課我們學習的字符則是和語文(或者英語)強烈關聯著。
## 什么是字符串
我們平時用電腦、手機最經常做的操作是什么?對,就是打字了。這些打出的字就是字符串。**字符串是用來表示文本的,由一堆字符組成**,那什么是字符呢?**我們鍵盤里敲擊的漢字、英文字母、標點符號都是字符**。

就像一句話有不同的含義,一個字符串也會有不同的含義。可以是一個**URL連接(網站地址)**、**一段文章**、**文件路徑**等等。
## 對字符串能做哪些操作
在介紹我們對字符串能做哪些操作前,我們先會議一下。我們對一段話能做哪些操作:**改錯字**、**數文字字數**、**找成語**、**摘抄名句**。
接下來我們就學習一下在python里怎么使用字符串,對字符串做我們列出的這些操作。
## python中怎么表達字符串
在python里,我們用英文的 ``' '``兩個單引號或者 `` "" ""``兩個雙引號把字符包裹起來代表字符串。下面是一些例子:
```
# 定義字符串的幾種方式
'hello world!'
'你好,世界'
"pyhon is beautiful language"
"python是美麗的語言"
'www.google.com'
# 賦值語句 定義變量a,它的值是 hello world
a = 'hello world'
# 賦值語句 把變量a的值改為 你好世界
a = "你好世界"
```
## python里的字符串操作
學習完怎么定義字符串,我們看看對字符串怎么做 *改錯字*、*數文字字數*、*找成語*、*摘抄名句*。
* **取字符串長度-數文字字數**
```
a = 'i love python'
b = len(a)
print(b)
```
其中第二行 ``b = len(a)`` 中的 ``len(a)`` 就是取字符串a的長度。len是length的縮寫,程序員是不是很愛偷懶,哈哈。 那整個第二行的意思就是:定義一個變量b,它的值是字符串a的長度。
* **取字符串里的子字符串-找成語**
```
a = '我們一定要好好學習,天天向上'
b = a[0]
c = a[2]
d = a[5 : 9]
print(b,c,d)
```
其中第二行 ``b = a[0]`` 中的 ``a[0]`` 就是取字符串第0個位置字符。等等,為什么是第0個位置,怎么數數的?是的,計算機這點特別矯情,數數是從0開始數的,這點和人類有很大的不同,一定要記住。**計算機是從0開始數數的**。
第四行的 ``d = a[5 : 9]`` 中的 ``a[5,9]`` 是取字符串的第6到底9的“好好學習”四個字符。這里要注意,因為計算機是從0開始數數的,所以“5”是取字符串的第六個字符;注意中間的英文“:”號。
* **字符串拼接-摘抄名句**
```
a = '我們一定要好好學習,天天向上'
b = ' 才有做到有一天金榜題名。'
c = a + b
print(c)
```
其中第三行 ``bc = a + b`` 的意思是 將字符串 a 和 b 拼接,拼接結果給到變量c
* **字符串替換-改錯字**
```
a = '我們一定要好好學習,天天向尚'
b = a.replace('尚', '上')
print(a, b)
```
其中第二行 ``b = a.replace('尚', '上')`` 的``a.replace('尚', '上')``的意思是將字符串變量a里的“尚”替換成“上”;將替換結果給到變量b。
這里注意執行代碼的結果,我們發現變量b為改變后的字符串,而變量a則還是原來的值,沒有發生變化。
## 總結
這節課我們學習了什么是字符串,它是**用來表示文本的,和我們的語文對應**。我們對字符串可以做:**取長度**、**獲取字符串里的子字符串**、**字符串拼接**、**字符串替換**四個主要的操作。
# 小灶時間
## 什么是布爾
生活中還有一種類型的數據。我們經常要回答**是或否**的問題,比如:太陽是不是東升西落、8是不是正數、雞是不是飛行動物。這些問題,都只有 **是 或 否** 兩種答案。
## python里的布爾
我們知道,是的英文是**True**, 否的英文是**False**。由 **True False** 倆數據組成的就是布爾,為啥只有兩個還要定義一個新數據類型?因為這倆太特殊、太重要了。生活中那么多判斷題,編程里更少不了。看代碼:
~~~
a = True
b = False
~~~
是不是很簡單。對,布爾就這些操作,簡單而重要。
- 課程介紹
- 搭建環境
- 什么是計算機
- 程序是怎么運行的
- 安裝python
- 項目實例-安裝IDE
- 變量和簡單數據類型
- 數據&變量
- 數字
- 字符串
- 布爾類型
- 項目實例
- 容器-列表
- 容器
- 列表
- 項目實例
- 容器-字典
- 定義字典
- 項目實例
- 數據類型總結
- 條件語句
- python條件語句
- 項目實例
- 循環語句
- for循環
- while循環
- 項目實例
- 函數
- 5.0函數定義
- 5.2函數實戰
- 6.文件系統
- 6.1 文件系統介紹&python查找文件
- 6.2 用python讀寫文件
- 7. python操作時間
- 8.面向對象
- 8.1 類和對象
- 8.2 繼承和重寫
- 8.3 面向對象項目實戰
- 9 GUI編程
- 9.1 GUI基礎
- 9.2 備忘清單GUI版
- 10.網絡
- 10.1 網絡的發展
- 10.2 python http
- 11.web開發
- 11.1 web基礎&HTML
- 11.2 CSS&JavaScript
- 11.3 網頁計算器
- 11.3 網站開發實戰-播客搭建
- 11.3 python-web
- 12. 項目實戰-數據處理
- 13. 項目實戰-AI入門
- 13.1 環境搭建
- 心得
- 13.2 Tensorflow的瓜怎么吃
- 14 pygame
- 14.1 pygame Helloworld
- 14.4 pygame 動畫基礎 Animation
- 從0開始學python第14.5節 pygame 加載圖片和聲音
- 從0開始學python第14.6節 pygame.sprite(上)
- 14.7 pygame.sprite模塊(下)
- 14.8 pygame射擊游戲(一)
- pygame射擊游戲(二)
- 14.8 pygame射擊游戲(三)
- 14.8 pygame射擊游戲(四)
- 14.8 pygame射擊游戲(五)