Python的基本語法詳解
一、Python輸出
print是python輸出的關鍵字,默認是輸出內容後換行。
如果不想換行,需要在變量末尾加上 end="" 。
a = 'hello' b = 'world' print(a) print(b) print(a, end=" " ) print(b, end=" " ) print(a, b)
輸出信息:
C:\PycharmProjects\untitled\venv\Scripts\python.exe C:/PycharmProjects/untitled/test.py hello world hello world
多個變量輸出之間加上逗號(,),默認為空格分隔符,如:
print(x, y) print(x, y, sep="-")
1、repr() 或 str() 轉成字符串
如果你希望將輸出的值轉成字符串,可以使用 repr() 或 str() 函數來實現。
- str(): 函數返回一個用戶易讀的表達形式。
- repr(): 產生一個解釋器易讀的表達形式。
s = 'Hello, Runoob' print(s) # Hello, Runoob print(repr(s)) # 'Hello, Runoob' # repr() 函數可以轉義字符串中的特殊字符 hello = 'hello, runoob\n' hellos = repr(hello) print(hellos) # 'hello, runoob\n' # repr() 的參數可以是 Python 的任何對象 print(repr((32.5, 40000, ('Google', 'Runoob')))) # (32.5, 40000, ('Google', 'Runoob'))
2、字符串填充空格進行格式化
字符串對象的 rjust() 方法, 它可以將字符串靠右, 並在左邊填充空格。
還有類似的方法, 如 ljust() 和 center()。 這些方法並不會寫任何東西, 它們僅僅返回新的字符串。
另一個方法 zfill(), 它會在數字的左邊填充 0。
有兩種方式輸出一個平方與立方的表:
for x in range(1, 11): print(repr(x).rjust(2), repr(x * x).rjust(3), end=' ') # 註意前一行 'end' 的使用 print(repr(x * x * x).rjust(4)) # 1 1 1 # 2 4 8 # 3 9 27 # 4 16 64 # 5 25 125 # 6 36 216 # 7 49 343 # 8 64 512 # 9 81 729 # 10 100 1000 for x in range(1, 11): print('{0:2d} {1:3d} {2:4d}'.format(x, x * x, x * x * x)) # 1 1 1 # 2 4 8 # 3 9 27 # 4 16 64 # 5 25 125 # 6 36 216 # 7 49 343 # 8 64 512 # 9 81 729 # 10 100 1000
3、!a (使用 ascii()), !s (使用 str()) 和 !r (使用 repr()) 可以用於在格式化某個值之前對其進行轉化
import math print('使用 ascii(): {!a}'.format('哈哈啊W2')) # 使用 ascii(): '\u54c8\u54c8\u554aW2'。 print('常量 PI 的值近似為: {!r}。'.format(math.pi)) # 常量 PI 的值近似為: 3.141592653589793。
二、Python標識符
在 Python 裡,標識符可由字母、數字、下劃線組合而成(但不能以數字開頭),且標識符是區分字母大小寫的,比如hello和Hello會被系統認為是兩個標識符。
以下劃線開頭的標識符是有特殊意義的。
- 單下劃線開頭,如 _abc, 代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用" from xxx import * "導入
- 雙下劃線開頭,如 __abc, 代表類的私有成員
- 開頭和結尾都有雙下劃線,如 __abc__ , 代表 Python 裡特殊方法專用的標識,如 __init__() 代表類的構造函數
三、Python保留字符(關鍵字)
所有”保留字符“,也就是已經被Python系統征用的標識符,俗稱“key word(關鍵字)”,這些保留字符不能用作常量或變量,以及任何標識符名稱。
以下是Python保留字符表:
- and、exec、not、assert、finally、or、break、for、pass、class、from、print、continue、global、raise、def、
- if、return、del、import、try、elif、in、while、else、is、with、except、lambda、yield
四、Python模塊寫法
與其他語言最大的不同在於,Python不使用大括號( { } )來描述類、函數以及其他邏輯判斷,而是采用縮進的方式來寫模塊。
而縮進的空白數量是可變的,如果你想確保代碼塊能正確運行,那必須確保代碼塊中的語句都是一樣的縮進數量。舉例:
if True: print ("True") #此處縮進瞭2個空白數 else: print ("False") #此處縮進瞭2個空白數
如果是下面的寫法,則會報錯,因為最後的print隻縮進瞭2個空白數,沒有與代碼塊中的對齊:
if True: print ("Answer") print ("True") else: print ("Answer") # 沒有嚴格縮進,在執行時會報錯 print ("False")
報錯信息:
File "D:/PythonProject/hello.py", line 7
print ("False")
^
IndentationError: unindent does not match any outer indentation level
因此,建議你使用 單個制表符 或 兩個空格 或 四個空格 來對代碼進行縮進,切勿混用。
五、Python引號
python中單引號和雙引號使用完全相同。
python支持用單引號(' ')、雙引號( " " )、三個雙引號( """ """ )或三個單引號( ''' ''' ),都可以表示字符串,引號的開始與結束必須相同類型和數量。
1、多行字符串
註意:使用三引號('''或""")可以指定一個多行字符串。可以由多行組成,為編寫多行文本的快捷語法,常用於文檔字符串。
在文件的特定地點,被當做註釋。(見註釋講解)
a = """這是一個三引號。 包含瞭三個雙引號。""" print(a)
輸出結果:
D:/PythonProject/hello.py
這是一個三引號。
包含瞭三個雙引號。
2、轉義符 '\'
反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義。。 如 r"this is a line with \n" 則\n會顯示,並不是換行。這裡的 r 指 raw,即 raw string
六、Python註釋
註釋是指用來在代碼中進行標註的信息,是不會被系統處理或顯示的。Python的註釋有2種方式:
1、單行註釋#
在一段代碼或描述前加上井號(#) ,如:
a = 1+1 #我是一段註釋 print(a)
輸出結果:
D:/PythonProject/hello.py
2
2、多行註釋’’’
用三引號(""" """)或(''' ''')來對多行代碼或描述進行註釋,如:
a = 1+1 '''我是多行註釋 這是第二行 這是第三行''' print(a)
輸出結果:
D:/PythonProject/hello.py
2
七、Python空行
與其他語言不同的還有,python采用空一行的方式,來表示多個函數、多個方法、或類和函數的入口。
空行的作用在於區分兩段不同功能或定義的代碼,便於日後代碼的維護。
因此:空行也是程序代碼的一部分。
八、Python用戶輸入
下面的代碼執行後就會等待用戶輸入,如按回車鍵後,執行就會結束:
input ("按下 enter 鍵退出,其他任意鍵顯示...\n")
九、Python一行多段代碼
如果想在同一行中編寫多段代碼,可以使用分號(;)來表示,如下:
x = 'abc'; print(x)
輸出結果:
D:/PythonProject/hello.py
abc
Python可以用分號“;”在同一行編寫多條語句,執行後會當作多行輸出,如:
>>> print ('hello'); print ('world');
hello runoob
十、多行語句
Python 通常是一行寫完一條語句,但如果語句很長,我們可以使用反斜杠(\)來實現多行語句,例如:
total = item_one + \ item_two + \ item_three
在 [], {}, 或 () 中的多行語句,不需要使用反斜杠(\),例如:
total = ['item_one', 'item_two', 'item_three', 'item_four', 'item_five']
十一、三元表達式
語法:條件成立時的返回值 if 條件 else 條件不成立時的返回值
x = 10 y = 20 print(x if x > y else y) # 20
十二、Python代碼組
縮進相同的一組語句構成一個代碼塊,我們稱之代碼組。
像if、while、def等這樣的復合語句,首行以關鍵字開始,以冒號( : )結束,該行之後的一行或多行代碼構成代碼組,如:
if a: xxxxx elif b: xxxxx else : xxxxx
十三、import 與 from…import
在 python 用 import 或者 from…import 來導入相應的模塊。
- 將整個模塊(somemodule)導入,格式為: import somemodule
- 從某個模塊中導入某個函數,格式為: from somemodule import somefunction
- 從某個模塊中導入多個函數,格式為: from somemodule import firstfunc, secondfunc, thirdfunc
- 將某個模塊中的全部函數導入,格式為: from somemodule import *
導入 sys 模塊:
import sys print('================Python import mode==========================') print ('命令行參數為:') for i in sys.argv: print (i) print ('\n python 路徑為',sys.path)
導入 sys 模塊的 argv,path 成員:
from sys import argv,path # 導入特定的成員 print('================python from import===================================') print('path:',path) # 因為已經導入path成員,所以此處引用時不需要加sys.path
十四、Python 調試方法
1、print
print('here') # 可以發現某段邏輯是否執行 # 打印出變量的內容
2、assert
assert false, 'blabla' # 如果條件不成立,則打印出 'blabla' 並拋出AssertionError異常
3、debugger
可以通過 pdb、IDE 等工具進行調試。
調試的具體方法這裡不展開。
Python 中有兩個內置方法在這裡也很有幫助:
- locals: 執行 locals() 之後, 返回一個字典, 包含(current scope)當前范圍下的局部變量。
- globals: 執行 globals() 之後, 返回一個字典, 包含(current scope)當前范圍下的全局變量。
到此這篇關於Python基本語法的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。