Python 的基本語法規(guī)范
在這個標準工業(yè)大行其道的今天,任何事物都有屬于自己的標準或者規(guī)范。作為當下最流行的編程語言之一的 Python 當然也不例外,這節(jié)課我們就來學習下 Python 的基本語法規(guī)范:
1. 簡介
本文介紹 Python 的最基本語法和功能,即:安裝完 Python 后、開始學習 Python,首先需要了解的知識點。
2. 變量
2.1 什么是變量
變量是 Python 程序用來保存計算結(jié)果的存儲單元,為了方便訪問這塊存儲單元,Python 給這塊存儲單元命名,該名稱即為變量名,在 Python 中通過變量名來訪問保存計算結(jié)果的存儲單元。
在下圖中,在內(nèi)存中有一塊存儲區(qū)域保存了計算結(jié)果 123,在 Python 程序中使用變量 X 表示這一塊存儲區(qū)域,如下所示:
變量的值是可以變化的,在下圖中,將變量 X 修改為 456,如下所示:
2.2 在 Python 中定義和修改變量
本小節(jié)通過實例講解如何在 Python 中定義和修改變量,步驟如下:
- 在命令行窗口中輸入 python,進入 Python 的交互模式。注意,在 Python 的交互模式下,>>> 是提示符。本小節(jié)面向初學者,因此會提及進入 Python 的交互模式,之后的章節(jié)將不再贅述。
- 定義變量 X,并設(shè)定變量 X 的初值為 123
>>> X = 123
- 直接輸入變量名 X,讀取變量 X 的值,在交互模式下,會輸出變量 X 的當前值。
>>> X
123
- 修改變量 X 為 456。
>>> X = 456
- 直接輸入變量名 X,讀取變量 X 的值,發(fā)現(xiàn)變量 X 已經(jīng)修改為 456。
>>> X
456
2.3 變量的命名規(guī)則
Python 的變量名稱具有如下規(guī)則:
2.3.1 變量名由字母、數(shù)字、下劃線組成
合法的變量名稱如下:
- abc
- ABC
- abc123
- abc_xyz
- abc__xyz,該命名包含了2根下劃線
- __init__,該命名包含了2根下劃線
不合法的變量名稱如下:
- a$bc,該命名包含了字符$
- ab/c,該命名包含了字符/
2.3.2 數(shù)字不能作為變量名開頭
合法的變量名稱如下:
- abc123
不合法的變量名稱如下:
- 123abc
2.3.4 不能以 Python 中的關(guān)鍵字命名
在 Python 中,具有特殊功能的標識符稱為關(guān)鍵字。關(guān)鍵字是 Python 語言自己已經(jīng)使用的了,不允許開發(fā)者自己定義和關(guān)鍵字相同名字的變量。下圖列出了 Python 中所有的關(guān)鍵字。
在 Python 的交互模式中,輸入’False = 123’,定義變量 False,初值為 123,輸出結(jié)果如下:
>>> False = 123
File "<stdin>", line 1
SyntaxError: can't assign to keyword
False 是 Python 的關(guān)鍵字,因此提示語法錯誤:“SyntaxError: can’t assign to keyword”。
3. 注釋與空行
3.1 什么是注釋
在編寫 Python 程序時,寫程序的人為程序段給出解釋或提示,對代碼的解釋被稱為注釋。通過在程序代碼中添加注釋,可以提高程序代碼的可讀性。
Python 程序由多個程序段構(gòu)成,可以使用空行將程序段分開,從而提高程序代碼的可讀性。
編寫程序 comment.py,文件內(nèi)容如下:
- 在第1行和第4行中,以 # 開頭的文本為 Python 注釋,說明了下一行代碼的功能。
- 在第3行,沒有任何代碼,是一個空行。
- 執(zhí)行該程序時,Python 會忽視注釋和空行,不會執(zhí)行注釋和空行。
3.2 多行注釋
以 # 開頭的注釋可以注釋一行文本,Python 另外提供了注釋多行文本的功能。多行注釋用三個單引號 ‘’’ 或者三個雙引號 “”" 將注釋括起來,例如:
- 使用3個單引號注釋多行文本
'''
# 首先定義變量 x
# 讓后將變量 x 修改為 456
x = 123
x = 456
'''
- 使用3個雙引號注釋多行文本
"""
# 首先定義變量 x
# 讓后將變量 x 修改為 456
x = 123
x = 456
"""
4. 縮進
4.1 什么是縮進
在 Python 中,行首的空白區(qū)域被稱為縮進,例如:
if 2 > 1:
print('2 > 1 is true')
在第 2 行的首部,有 4 個空格, 這個 4 個空格被稱為縮進。
在 Python 中,可以使用 TAB 或者空格作為縮進,大部分代碼規(guī)范建議使用 4 個空格作為縮進。在 Python 自帶的集成開發(fā)環(huán)境 IDLE 中,用戶輸入 TAB 時,TAB 會被自動轉(zhuǎn)換為 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')
對比這兩段程序,可以發(fā)現(xiàn)使用縮進后,提高了程序的可讀性。在使用縮進的程序中,可以直觀的看到代碼之間的層次關(guān)系,具體如下:
- 第 1 行的 if 語句和第 2 行的 print 語句處于不同的層次
- 第 1 行的 if 語句和第 5 行的 print 語句處于相同的層次
4.3 必須使用縮進
Python 語言要求在需要表達代碼層次關(guān)系的場景中,必須使用縮進。如果不使用縮進,程序運行時則會報告錯誤。例如,編寫程序 no-indent.py 如下:
if 2 > 1:
print('2 > 1 is true')
運行 no-indent.py,輸出結(jié)果如下:
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 行,顯示結(jié)果為文本 ‘hello world’
可以在 input 語句中加入?yún)?shù),該參數(shù)作為用戶輸入的提示符,例如:
>>> number = input('Please input a number: ')
Please input a number: 123
>>> number
'123'
- 在第 1 行,使用 input 語句讀取用戶輸入的一行文本,將該文本保存到變量 number 中。input 語句帶有一個參數(shù) 'Please input a number: '。
- 在第 2 行,input 語句首先輸出 input 語句的參數(shù) 'Please input a number: ',這樣用戶就根據(jù)該提示輸入數(shù)字,然后 input 語句再讀取用戶輸入的一行文本 123。
5.2 輸出
在 python 中使用 print 語句向屏幕上輸出。舉例如下:
- 使用 print 語句輸出一段文本
>>> print('hello world')
hello world
- 使用 print 語句輸出整數(shù)
>>> print(123)
123
- 使用 print 語句輸出表達式的結(jié)果
>>> print(1+1)
2
- 使用 print 語句輸出變量的值
>>> var = 123
>>> print(var)
123
- 使用 print 語句輸出多項內(nèi)容:
- 在輸入中,每項內(nèi)容使用逗號分開
- 在輸出中,每項內(nèi)容使用空格分開
>>> print(123, "hello", 1+1)
123 hello 2
6. 編碼與中文亂碼
6.1 常見錯誤
在 Windows 操作系統(tǒng)中,使用 Python 輸出中文時,可能會出現(xiàn)亂碼的的情況,例如,使用 Windows 自帶的記事本編寫程序 chinese.py,內(nèi)容如下:
運行該程序,輸出結(jié)果如下:
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 解決亂碼的方法
以上中文亂碼的錯誤與中文編碼有關(guān),對初學者來說,編碼是一個較難解釋清楚的概念,需要有相當長的篇幅才能解釋清楚,本文僅介紹如何解決這類問題。
如果 Python 程序需要輸出中文,運行程序時出現(xiàn)錯誤提示 ‘SyntaxError: Non-UTF-8 cod starting’,解決這類錯誤的最簡單方法是:
- 不要使用 Windows 自帶的記事本程序編寫包含中文的 Python 程序
- 請使用如下工具編寫包含中文的 Python 程序
- Python 自帶的集成開發(fā)環(huán)境 IDLE
- PyCharm
- Sublime text
用以上推薦的工具重新編寫程序 chinese.py,則可以正常輸出結(jié)果:
中國
美國
7. 小結(jié)
這節(jié)課我們學習了 Python 的基本語法規(guī)范,這非常的重要。在實際的開發(fā)工作中,我們的代碼都要嚴格遵守這些規(guī)范,因為你寫的代碼不單單只有你一個人閱讀和使用,如果不遵守規(guī)范,會給我們的協(xié)同工作帶來巨大的不便。