## 編碼
Python 3源碼文件, 默認UTF-8編碼, 所有字符串是unicode字符串, 也可以指定編碼
```
# -*- coding: cp-1252 -*-
```
## 標識符
* 第一個標識符必須是字母或下劃線
* 標識符由字母、數字和下劃線組成
* 大小寫敏感
可以使用中文, 非ASCII字符也可以
## 保留字
使用標準庫提供的keyword 模塊,可以列出當前的關鍵字:
```
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
```
## 縮進
Python使用縮進表示代碼塊, 不需要使用大括號。
縮進的空格的數量沒有限制, 但是同一個代碼塊的語句必須包含相同的縮進空格數。
縮進不一致, 執行會出現錯誤。
正確縮進:
```
if True:
print("Ture")
else:
print("False")
```
縮進錯誤運行會報錯:

## 同一行顯示多條語句
* 使用分號分隔
```
# 同一行顯示多條語句
x = "1" ; print(x);
```
## 多行語句
如果一個語句過長, 一行寫不下,可以使用反斜杠 `\` 實現多行語句:
```
# 多行語句
number_one = 1
number_two = 2
number_three =3
total = number_one + \
number_two + \
number_three
print (total)
```
注意: 在`[]`, {}, 或 () 中的多行語句,不需要使用反斜杠,例如:
```
## [] {} () 中的多行語句,不需要使用反斜杠,直接換行
total = ['1',
'2',
'3']
```
## 引號標識的字符串
Python可以使用引號, 雙引號和三引號來標識。
* 單引號 `'`
* 雙引號 `"`
* 三引號 `"""` : 可以由多行組成, 常用于文檔字符串。
單引號和雙引號可以互換使用, 但是習慣上,
單引號使用于單詞, 雙引號使用于句子字符串, 三引號使用于段落字符串。
```
# 引號表示的字符串
word = '單詞'
sentence = "句子"
paragraph = """ 這是
一個
句子
"""
```
## 空行
* 函數之間或類的方法之間用空行分隔,表示一段新的代碼的開始。
* 類和函數之間也用一行空格分隔,突出函數入口的開始。
* 空行與代碼縮進不同, 空行不是Python語法的一部分。不插入空行,Python解釋器也不會出錯
* 空行又利用代碼的維護和重構。
## 代碼塊
縮進相同的一組語句構成一個代碼塊, 稱之為代碼組
像if、while、def和class這樣的復合語句,首行以關鍵字開始,以冒號( : )結束,該行之后的一行或多行代碼構成代碼組。
將首行及后面的代碼組稱為一個子句(clause)。
```
if expression :
suite
elif expression :
suite
else :
suite
```
- 前言
- 1.入門篇
- Python介紹
- 安裝與使用
- Python開發利器之VS Code
- 模塊安裝
- 命令行
- 一次Python無法安裝模塊的問題探索與解決之旅
- 命令運行
- Conda
- 下載地址
- 2.基礎篇
- 基礎語法
- 輸入與輸出
- with as的用法
- 注釋
- Python命令行參數
- 編碼
- 變量類型
- 列表遍歷
- 運算符
- 表達式語句
- 條件
- 循環
- 日期和時間
- 函數
- 高級語法
- @符號-裝飾器
- 模塊和包
- name
- init.py
- 錯誤和異常
- 面向對象
- 3.專題篇
- 常用功能
- Python 字符串連接
- python web
- Python CGI編程
- Python OAuth2
- 認證 Flask-HTTPAuth
- 常用命令
- 內置函數
- dir()
- print(f)
- 標準模塊
- sys
- pickle-數據序列化
- os
- IO(輸入輸出)
- 鍵盤輸入
- 文件讀寫
- 測試
- Python測試框架之pytest快速入門
- pytest-bdd快速示例和問題解決
- 基于pytest-bdd的項目目錄結構和命名規范
- python BDD 的相關概念
- Behave介紹和快速示例
- Python BDD之Behave測試報告
- Python BDD 框架比較之 pytest-bdd vs behave
- pytest進階
- Flask + pytest測試
- 參考網址
- pytest-bdd進階
- hehave進階
- 測試路徑
- python + selunium
- HTML 根據多層CSS 查找元素
- 等待執行
- 使用text 查找 span
- pytest如何在控制臺輸出
- 4.問題篇
- pip pip3 及區別
- TypeError: can only concatenate str (not "NoneType") to str
- 5.實戰篇
- matplotlib-繪圖包
- 導入類
- 命名規范
- 模塊查找
- 6.進階篇
- Flask
- Flask介紹
- Flask擴展模塊
- Flask-Login
- 問題
- Jinja2
- Flask-RESTful
- Flask-JWT-Extended
- WSGI
- Flask-SQLAlchemy
- 部署
- Flask VS Django
- Flask Web
- Flask + Vue
- Flask實戰
- Flask 標準目錄結構
- Blueprints
- 參考
- FastAPI 測試
- https 證書 Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate