python基礎教程:Python 基本語法
Python 作為一門計算機語言自然有它自己的語法規則,就像英語、漢語都有自己的語法規則一樣。Python的語法以簡潔著稱,它以行、縮排、註釋、識別符號、保留關鍵字等幾方面來規定了自己的語法。
下面我們先看一段Python程式碼:

Python 的行
在Python裡面,行分為 邏輯行
和 物理行
。物理行就是以行結束符( \n
)結尾算作一行,通常一個物理行也就是一個邏輯行。但有時候,一個邏輯行可以包含多個物理行,比如下面的程式碼,一個表示式太長我們就用多行來寫,用斜槓( \
)連線:
whole = 'This is a example of too long string' + \ ' which should be splited into multi-lines' + \ ' to show it' print(whole)
如果語句中含有 (), [], {}
這些括號,就不需要用斜槓做連線符,比如:
# list元素可以多行書寫 months = ['January', 'Februray', 'March', 'April', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] # 字串太長也可以通過()來多行書寫。 # 這個特性在寫很長的字串(如SQL語句)時很有用 sql = ('select id, name, age, height from ' 'students where id > 100')
空行
空行也是一種行(內容為空),也是程式碼的一部分。常用於分割程式碼塊,便於程式碼維護,這種程式碼規範中有詳細定義。
單行多條語句
Python 語法允許一行中有多條語句存在,語句之間用分號( ;
)分割,但是編碼規範中強烈不建議這樣做,還是一行一條語句更清晰。
# 合法但不提倡的單行多語句寫法 print('hi'); a = 10; b = 20; print(a+b)
縮排
Python語法與其它語言的一個明顯區別就是:通過縮排來表示程式碼塊,而不是像C/C++、Java等用大括號 {}
。
不過,縮排並沒有嚴格限制字元,可以是Tab鍵,也可以是多個空格。但是同一個原始檔( .py
檔案)中縮排必須相同,也就是說,要麼都用Tab鍵,要麼都用2個空格,要麼都用4個空格。官方的編碼規範(PEP 8)中規定用4個空格作為一個縮排。
如果縮排不一致,就會報錯: IndentationError。比如以下程式碼:
#!/usr/bin/env python3 # coding:utf-8 # File: demo.py # 縮排混亂,執行時報錯 a = 10 if a > 10: print('a > 10') else: print('a <= 10')
執行上面程式碼,就會出現如下錯誤:
python3 demo.py File "demo.py", line 6 a = 10 ^ IndentationError: unexpected indent
註釋
註釋是對程式碼的解釋,是給讀程式碼的人看的文字,不是給Python直譯器執行的程式碼。
行內註釋以 #
開頭,即一行中 #
後面的文字都是註釋內容。
多行註釋使用三個單引號( '''
)或三個雙引號( """
)引起來,多用於docstring(對模組、類、和函式進行說明)
# 這是註釋 print('hi, 吃了啊')# 這也是註釋 def myadd(a, b): '''my add() function param: a, int or float param: b, int or float return a + b ''' return a + b
識別符號(Identifiers)
識別符號,也就是名稱,即變數名、函式名、類名。Python給起名字做了相關的規定。
可以用在名稱中的字元有:
- 大寫字母:
A-Z
- 小寫字母:
a-z
- 阿拉伯數字:
0-9
- 下劃線:
_
- 更多的Unicode字元: 你可以用中文給變數起名字
識別符號(起名字)可以包括以上字元,但是 不能以數字開頭 ,同時名稱是 區分大小寫 的。
Python2只支援ASCII碼作為識別符號的字符集, 而Python 3 擴充套件了識別符號字符集,我們可以在程式中起中文名字,但是打中文會累死人的哦。
def 加法(加數, 被加數): return 加數 + 被加數 計算機 = 1 程式設計 = 2 print(加法(計算機, 程式設計))
保留關鍵字
雖然Python程式中可以使用那麼多的字元,但是它也保留了一些字(如下表所示)作為語言本身的關鍵字,你給你的變數、函式、類起名字的時候不能使用這些關鍵字:
Falseawaitelseimportpass Nonebreakexceptinraise Trueclassfinallyisreturn andcontinueforlambdatry asdeffromnonlocalwhile assertdelglobalnotwith asyncelififoryield
這些單詞是Python語言裡面的單詞,一共不到40個,跟我們人類的語言(比如,英語)比起來單詞量少之又少啊,計算機語言真簡單!雖然計算機語言單詞量很少,但是它講邏輯,這麼少的詞彙加上運算子、變數和類等就可以構建出複雜的計算機程式。
保留的類識別符號
這些類的識別符號有特殊的含義,它們都是以下劃線 _
開頭和結尾的形式:
-
_*
不會被語句from module import *
匯入。 -
__*__
系統定義的名稱。 -
__*
類的私有名稱。
大家在學python的時候肯定會遇到很多難題,以及對於新技術的追求,這裡推薦一下我們的Python學習扣qun:784758214,這裡是python學習者聚集地!!同時,自己是一名高階python開發工程師,從基礎的python指令碼到web開發、爬蟲、django、資料探勘等,零基礎到專案實戰的資料都有整理。送給每一位python的小夥伴!每日分享一些學習的方法和需要注意的小細節
