1. 程式人生 >基礎教學 >Python入門教學 >06 Python 的基本語法規範

06 Python 的基本語法規範


在這個標準工業大行其道的今天,任何事物都有屬於自己的標準或者規範。作為當下最流行的程式語言之一的 Python 當然也不例外,這節課我們就來學習下 Python 的基本語法規範:

1. 簡介

本文介紹 Python 的最基本語法和功能,即:安裝完 Python 後、開始學習 Python,首先需要了解的知識點。

2. 變數

2.1 什麼是變數

變數是 Python 程式用來儲存計算結果的儲存單元,為了方便訪問這塊儲存單元,Python 給這塊儲存單元命名,該名稱即為變數名,在 Python 中通過變數名來訪問儲存計算結果的儲存單元。

在下圖中,在記憶體中有一塊儲存區域儲存了計算結果 123,在 Python 程式中使用變數 X 表示這一塊儲存區域,如下所示:

06 Python 的基本語法規範

變數 X 用於儲存計算結果

變數的值是可以變化的,在下圖中,將變數 X 修改為 456,如下所示:

06 Python 的基本語法規範

修改變數 X

2.2 在 Python 中定義和修改變數

本小節通過例項講解如何在 Python 中定義和修改變數,步驟如下:

  1. 在命令列視窗中輸入 python,進入 Python 的互動模式。注意,在 Python 的互動模式下,>>> 是提示符。本小節面向初學者,因此會提及進入 Python 的互動模式,之後的章節將不再贅述。

06 Python 的基本語法規範

進入 Python 的互動模式
  1. 定義變數 X,並設定變數 X 的初值為 123
>>> X = 123
  1. 直接輸入變數名 X,讀取變數 X 的值,在互動模式下,會輸出變數 X 的當前值。
>>> X
123
  1. 修改變數 X 為 456。
>>> X = 456
  1. 直接輸入變數名 X,讀取變數 X 的值,發現變數 X 已經修改為 456。
>>> X
456

2.3 變數的命名規則

Python 的變數名稱具有如下規則:

2.3.1 變數名由字母、數字、下劃線組成

合法的變數名稱如下:

  • abc
  • ABC
  • abc123
  • abc_xyz
  • abc__xyz,該命名包含了2根下劃線
  • __init__,該命名包含了2根下劃線

不合法的變數名稱如下:

  • a$bc,該命名包含了字元$
  • ab/c,該命名包含了字元/

2.3.2 數字不能作為變數名開頭

合法的變數名稱如下:

  • abc123

不合法的變數名稱如下:

  • 123abc

2.3.4 不能以 Python 中的關鍵字命名

在 Python 中,具有特殊功能的識別符號稱為關鍵字。關鍵字是 Python 語言自己已經使用的了,不允許開發者自己定義和關鍵字相同名字的變數。下圖列出了 Python 中所有的關鍵字。

06 Python 的基本語法規範

Python 中的關鍵字

在 Python 的互動模式中,輸入’False = 123’,定義變數 False,初值為 123,輸出結果如下:

>>> False = 123
  File "<stdin>", line 1
SyntaxError: can't assign to keyword

False 是 Python 的關鍵字,因此提示語法錯誤:“SyntaxError: can’t assign to keyword”。

3. 註釋與空行

3.1 什麼是註釋

在編寫 Python 程式時,寫程式的人為程式段給出解釋或提示,對程式碼的解釋被稱為註釋。通過在程式程式碼中添加註釋,可以提高程式程式碼的可讀性。

Python 程式由多個程式段構成,可以使用空行將程式段分開,從而提高程式程式碼的可讀性。

編寫程式 comment.py,檔案內容如下:

案例演示
預覽 複製
複製成功!
# 首先定義變數 x
x = 123

# 將變數 x 修改為 456
x = 456
執行案例 點選 "執行案例" 可檢視線上執行效果
  • 在第1行和第4行中,以 # 開頭的文字為 Python 註釋,說明了下一行程式碼的功能。
  • 在第3行,沒有任何程式碼,是一個空行。
  • 執行該程式時,Python 會忽視註釋和空行,不會執行註釋和空行。

3.2 多行註釋

以 # 開頭的註釋可以註釋一行文字,Python 另外提供了註釋多行文字的功能。多行註釋用三個單引號 ‘’’ 或者三個雙引號 “”" 將註釋括起來,例如:

  1. 使用3個單引號註釋多行文字
'''
# 首先定義變數 x
# 讓後將變數 x 修改為 456
x = 123
x = 456
'''
  1. 使用3個雙引號註釋多行文字
"""
# 首先定義變數 x
# 讓後將變數 x 修改為 456
x = 123
x = 456
"""

4. 縮排

4.1 什麼是縮排

在 Python 中,行首的空白區域被稱為縮排,例如:

if 2 > 1:
    print('2 > 1 is true')

在第 2 行的首部,有 4 個空格, 這個 4 個空格被稱為縮排。

在 Python 中,可以使用 TAB 或者空格作為縮排,大部分程式碼規範建議使用 4 個空格作為縮排。在 Python 自帶的整合開發環境 IDLE 中,使用者輸入 TAB 時,TAB 會被自動轉換為 4 個空格。

4.2 為什麼需要縮排

使用縮排後,可以直觀的看到程式碼的邏輯層次,從而提高程式碼的可讀性。

如果不使用縮排,完成一個程式如下:

if 2 > 1:
print('2 > 1 is true')
else:
print('2 > 1 is false')
print('Program is end')

如果使用縮排,完成相同功能的程式如下:

案例演示
預覽 複製
複製成功!
if 2 > 1:
    print('2 > 1 is true')
else:
    print('2 > 1 is false')
print('Program is end')
執行案例 點選 "執行案例" 可檢視線上執行效果

對比這兩段程式,可以發現使用縮排後,提高了程式的可讀性。在使用縮排的程式中,可以直觀的看到程式碼之間的層次關係,具體如下:

  • 第 1 行的 if 語句和第 2 行的 print 語句處於不同的層次
  • 第 1 行的 if 語句和第 5 行的 print 語句處於相同的層次

4.3 必須使用縮排

Python 語言要求在需要表達程式碼層次關係的場景中,必須使用縮排。如果不使用縮排,程式執行時則會報告錯誤。例如,編寫程式 no-indent.py 如下:

if 2 > 1:
print('2 > 1 is true')

執行 no-indent.py,輸出結果如下:

C:\> python no-indent.py
  File "no-indent.py", line 2
    print('2 > 1 is true')
        ^
IndentationError: expected an indented block

輸出表明在程式的第 2 行缺乏縮排(expected an indented block)。

5. 輸入與輸出

5.1 輸入

Python 提供了 input 語句用於讀取鍵盤輸入,input 語句讀取使用者輸入的一行文字。

>>> line = input()
hello world
>>> line
'hello world'
  • 在第 1 行,使用 input 語句讀取使用者輸入的一行文字,將該文字儲存到變數 line 中。
  • 在第 2 行,使用者輸入一行文字 ‘hello world’。
  • 在第 3 行,檢視變數 line。
  • 在第 4 行,顯示結果為文字 ‘hello world’

可以在 input 語句中加入引數,該引數作為使用者輸入的提示符,例如:

>>> number = input('Please input a number: ')
Please input a number: 123
>>> number
'123'
  • 在第 1 行,使用 input 語句讀取使用者輸入的一行文字,將該文字儲存到變數 number 中。input 語句帶有一個引數 'Please input a number: '。
  • 在第 2 行,input 語句首先輸出 input 語句的引數 'Please input a number: ',這樣使用者就根據該提示輸入數字,然後 input 語句再讀取使用者輸入的一行文字 123。

5.2 輸出

在 python 中使用 print 語句向螢幕上輸出。舉例如下:

  1. 使用 print 語句輸出一段文字
>>> print('hello world')
hello world
  1. 使用 print 語句輸出整數
>>> print(123)
123
  1. 使用 print 語句輸出表達式的結果
>>> print(1+1)
2
  1. 使用 print 語句輸出變數的值
>>> var = 123
>>> print(var)
123
  1. 使用 print 語句輸出多項內容:
    • 在輸入中,每項內容使用逗號分開
    • 在輸出中,每項內容使用空格分開
>>> print(123, "hello", 1+1)
123 hello 2

6. 編碼與中文亂碼

6.1 常見錯誤

在 Windows 作業系統中,使用 Python 輸出中文時,可能會出現亂碼的的情況,例如,使用 Windows 自帶的記事本編寫程式 chinese.py,內容如下:

案例演示
預覽 複製
複製成功!
print('中國')
print('美國')
執行案例 點選 "執行案例" 可檢視線上執行效果

執行該程式,輸出結果如下:

C:\>python chinese.py
  File "chinese.py", line 1
SyntaxError: Non-UTF-8 code starting with '\xd6' in file chinese.py on line 1, b
ut no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

6.2 解決亂碼的方法

以上中文亂碼的錯誤與中文編碼有關,對初學者來說,編碼是一個較難解釋清楚的概念,需要有相當長的篇幅才能解釋清楚,本文僅介紹如何解決這類問題。

如果 Python 程式需要輸出中文,執行程式時出現錯誤提示 ‘SyntaxError: Non-UTF-8 cod starting’,解決這類錯誤的最簡單方法是:

  • 不要使用 Windows 自帶的記事本程式編寫包含中文的 Python 程式
  • 請使用如下工具編寫包含中文的 Python 程式
    • Python 自帶的整合開發環境 IDLE
    • PyCharm
    • Sublime text

用以上推薦的工具重新編寫程式 chinese.py,則可以正常輸出結果:

中國
美國

7. 小結

這節課我們學習了 Python 的基本語法規範,這非常的重要。在實際的開發工作中,我們的程式碼都要嚴格遵守這些規範,因為你寫的程式碼不單單隻有你一個人閱讀和使用,如果不遵守規範,會給我們的協同工作帶來巨大的不便。