Python的基本語(yǔ)法詳解
一、Python輸出
print是python輸出的關(guān)鍵字,默認(rèn)是輸出內(nèi)容后換行。
如果不想換行,需要在變量末尾加上 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
多個(gè)變量輸出之間加上逗號(hào)(,),默認(rèn)為空格分隔符,如:
print(x, y) print(x, y, sep="-")
1、repr() 或 str() 轉(zhuǎn)成字符串
如果你希望將輸出的值轉(zhuǎn)成字符串,可以使用 repr() 或 str() 函數(shù)來(lái)實(shí)現(xiàn)。
- str(): 函數(shù)返回一個(gè)用戶易讀的表達(dá)形式。
- repr(): 產(chǎn)生一個(gè)解釋器易讀的表達(dá)形式。
s = 'Hello, Runoob' print(s) # Hello, Runoob print(repr(s)) # 'Hello, Runoob' # repr() 函數(shù)可以轉(zhuǎn)義字符串中的特殊字符 hello = 'hello, runoob\n' hellos = repr(hello) print(hellos) # 'hello, runoob\n' # repr() 的參數(shù)可以是 Python 的任何對(duì)象 print(repr((32.5, 40000, ('Google', 'Runoob')))) # (32.5, 40000, ('Google', 'Runoob'))
2、字符串填充空格進(jìn)行格式化
字符串對(duì)象的 rjust() 方法, 它可以將字符串靠右, 并在左邊填充空格。
還有類似的方法, 如 ljust() 和 center()。 這些方法并不會(huì)寫任何東西, 它們僅僅返回新的字符串。
另一個(gè)方法 zfill(), 它會(huì)在數(shù)字的左邊填充 0。
有兩種方式輸出一個(gè)平方與立方的表:
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()) 可以用于在格式化某個(gè)值之前對(duì)其進(jìn)行轉(zhuǎn)化
import math print('使用 ascii(): {!a}'.format('哈哈啊W2')) # 使用 ascii(): '\u54c8\u54c8\u554aW2'。 print('常量 PI 的值近似為: {!r}。'.format(math.pi)) # 常量 PI 的值近似為: 3.141592653589793。
二、Python標(biāo)識(shí)符
在 Python 里,標(biāo)識(shí)符可由字母、數(shù)字、下劃線組合而成(但不能以數(shù)字開(kāi)頭),且標(biāo)識(shí)符是區(qū)分字母大小寫的,比如hello和Hello會(huì)被系統(tǒng)認(rèn)為是兩個(gè)標(biāo)識(shí)符。
以下劃線開(kāi)頭的標(biāo)識(shí)符是有特殊意義的。
- 單下劃線開(kāi)頭,如 _abc, 代表不能直接訪問(wèn)的類屬性,需通過(guò)類提供的接口進(jìn)行訪問(wèn),不能用" from xxx import * "導(dǎo)入
- 雙下劃線開(kāi)頭,如 __abc, 代表類的私有成員
- 開(kāi)頭和結(jié)尾都有雙下劃線,如 __abc__ , 代表 Python 里特殊方法專用的標(biāo)識(shí),如 __init__() 代表類的構(gòu)造函數(shù)
三、Python保留字符(關(guān)鍵字)
所有”保留字符“,也就是已經(jīng)被Python系統(tǒng)征用的標(biāo)識(shí)符,俗稱“key word(關(guān)鍵字)”,這些保留字符不能用作常量或變量,以及任何標(biāo)識(shí)符名稱。
以下是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模塊寫法
與其他語(yǔ)言最大的不同在于,Python不使用大括號(hào)( { } )來(lái)描述類、函數(shù)以及其他邏輯判斷,而是采用縮進(jìn)的方式來(lái)寫模塊。
而縮進(jìn)的空白數(shù)量是可變的,如果你想確保代碼塊能正確運(yùn)行,那必須確保代碼塊中的語(yǔ)句都是一樣的縮進(jìn)數(shù)量。舉例:
if True: print ("True") #此處縮進(jìn)了2個(gè)空白數(shù) else: print ("False") #此處縮進(jìn)了2個(gè)空白數(shù)
如果是下面的寫法,則會(huì)報(bào)錯(cuò),因?yàn)樽詈蟮膒rint只縮進(jìn)了2個(gè)空白數(shù),沒(méi)有與代碼塊中的對(duì)齊:
if True: print ("Answer") print ("True") else: print ("Answer") # 沒(méi)有嚴(yán)格縮進(jìn),在執(zhí)行時(shí)會(huì)報(bào)錯(cuò) print ("False")
報(bào)錯(cuò)信息:
File "D:/PythonProject/hello.py", line 7
print ("False")
^
IndentationError: unindent does not match any outer indentation level
因此,建議你使用 單個(gè)制表符 或 兩個(gè)空格 或 四個(gè)空格 來(lái)對(duì)代碼進(jìn)行縮進(jìn),切勿混用。
五、Python引號(hào)
python中單引號(hào)和雙引號(hào)使用完全相同。
python支持用單引號(hào)(' ')、雙引號(hào)( " " )、三個(gè)雙引號(hào)( """ """ )或三個(gè)單引號(hào)( ''' ''' ),都可以表示字符串,引號(hào)的開(kāi)始與結(jié)束必須相同類型和數(shù)量。
1、多行字符串
注意:使用三引號(hào)('''或""")可以指定一個(gè)多行字符串??梢杂啥嘈薪M成,為編寫多行文本的快捷語(yǔ)法,常用于文檔字符串。
在文件的特定地點(diǎn),被當(dāng)做注釋。(見(jiàn)注釋講解)
a = """這是一個(gè)三引號(hào)。 包含了三個(gè)雙引號(hào)。""" print(a)
輸出結(jié)果:
D:/PythonProject/hello.py
這是一個(gè)三引號(hào)。
包含了三個(gè)雙引號(hào)。
2、轉(zhuǎn)義符 '\'
反斜杠可以用來(lái)轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義。。 如 r"this is a line with \n" 則\n會(huì)顯示,并不是換行。這里的 r 指 raw,即 raw string
六、Python注釋
注釋是指用來(lái)在代碼中進(jìn)行標(biāo)注的信息,是不會(huì)被系統(tǒng)處理或顯示的。Python的注釋有2種方式:
1、單行注釋#
在一段代碼或描述前加上井號(hào)(#) ,如:
a = 1+1 #我是一段注釋 print(a)
輸出結(jié)果:
D:/PythonProject/hello.py
2
2、多行注釋’’’
用三引號(hào)(""" """)或(''' ''')來(lái)對(duì)多行代碼或描述進(jìn)行注釋,如:
a = 1+1 '''我是多行注釋 這是第二行 這是第三行''' print(a)
輸出結(jié)果:
D:/PythonProject/hello.py
2
七、Python空行
與其他語(yǔ)言不同的還有,python采用空一行的方式,來(lái)表示多個(gè)函數(shù)、多個(gè)方法、或類和函數(shù)的入口。
空行的作用在于區(qū)分兩段不同功能或定義的代碼,便于日后代碼的維護(hù)。
因此:空行也是程序代碼的一部分。
八、Python用戶輸入
下面的代碼執(zhí)行后就會(huì)等待用戶輸入,如按回車鍵后,執(zhí)行就會(huì)結(jié)束:
input ("按下 enter 鍵退出,其他任意鍵顯示...\n")
九、Python一行多段代碼
如果想在同一行中編寫多段代碼,可以使用分號(hào)(;)來(lái)表示,如下:
x = 'abc'; print(x)
輸出結(jié)果:
D:/PythonProject/hello.py
abc
Python可以用分號(hào)“;”在同一行編寫多條語(yǔ)句,執(zhí)行后會(huì)當(dāng)作多行輸出,如:
>>> print ('hello'); print ('world');
hello runoob
十、多行語(yǔ)句
Python 通常是一行寫完一條語(yǔ)句,但如果語(yǔ)句很長(zhǎng),我們可以使用反斜杠(\)來(lái)實(shí)現(xiàn)多行語(yǔ)句,例如:
total = item_one + \ item_two + \ item_three
在 [], {}, 或 () 中的多行語(yǔ)句,不需要使用反斜杠(\),例如:
total = ['item_one', 'item_two', 'item_three', 'item_four', 'item_five']
十一、三元表達(dá)式
語(yǔ)法:條件成立時(shí)的返回值 if 條件 else 條件不成立時(shí)的返回值
x = 10 y = 20 print(x if x > y else y) # 20
十二、Python代碼組
縮進(jìn)相同的一組語(yǔ)句構(gòu)成一個(gè)代碼塊,我們稱之代碼組。
像if、while、def等這樣的復(fù)合語(yǔ)句,首行以關(guān)鍵字開(kāi)始,以冒號(hào)( : )結(jié)束,該行之后的一行或多行代碼構(gòu)成代碼組,如:
if a: xxxxx elif b: xxxxx else : xxxxx
十三、import 與 from...import
在 python 用 import 或者 from...import 來(lái)導(dǎo)入相應(yīng)的模塊。
- 將整個(gè)模塊(somemodule)導(dǎo)入,格式為: import somemodule
- 從某個(gè)模塊中導(dǎo)入某個(gè)函數(shù),格式為: from somemodule import somefunction
- 從某個(gè)模塊中導(dǎo)入多個(gè)函數(shù),格式為: from somemodule import firstfunc, secondfunc, thirdfunc
- 將某個(gè)模塊中的全部函數(shù)導(dǎo)入,格式為: from somemodule import *
導(dǎo)入 sys 模塊:
import sys print('================Python import mode==========================') print ('命令行參數(shù)為:') for i in sys.argv: print (i) print ('\n python 路徑為',sys.path)
導(dǎo)入 sys 模塊的 argv,path 成員:
from sys import argv,path # 導(dǎo)入特定的成員 print('================python from import===================================') print('path:',path) # 因?yàn)橐呀?jīng)導(dǎo)入path成員,所以此處引用時(shí)不需要加sys.path
十四、Python 調(diào)試方法
1、print
print('here') # 可以發(fā)現(xiàn)某段邏輯是否執(zhí)行 # 打印出變量的內(nèi)容
2、assert
assert false, 'blabla' # 如果條件不成立,則打印出 'blabla' 并拋出AssertionError異常
3、debugger
可以通過(guò) pdb、IDE 等工具進(jìn)行調(diào)試。
調(diào)試的具體方法這里不展開(kāi)。
Python 中有兩個(gè)內(nèi)置方法在這里也很有幫助:
- locals: 執(zhí)行 locals() 之后, 返回一個(gè)字典, 包含(current scope)當(dāng)前范圍下的局部變量。
- globals: 執(zhí)行 globals() 之后, 返回一個(gè)字典, 包含(current scope)當(dāng)前范圍下的全局變量。
到此這篇關(guān)于Python基本語(yǔ)法的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python基本語(yǔ)法之運(yùn)算符功能與用法詳解
- 計(jì)算機(jī)二級(jí)python學(xué)習(xí)教程(2) python語(yǔ)言基本語(yǔ)法元素
- python基本語(yǔ)法練習(xí)實(shí)例
- Python 詳解基本語(yǔ)法_函數(shù)_返回值
- 淺談python中的面向?qū)ο蠛皖惖幕菊Z(yǔ)法
- Python基礎(chǔ)教程之正則表達(dá)式基本語(yǔ)法以及re模塊
- Python基本語(yǔ)法經(jīng)典教程
- Python程序設(shè)計(jì)入門(1)基本語(yǔ)法簡(jiǎn)介
- python網(wǎng)絡(luò)爬蟲基本語(yǔ)法詳解
相關(guān)文章
Python判斷字符串是否包含特定子字符串的多種方法(7種方法)
我們經(jīng)常會(huì)遇這樣一個(gè)需求判斷字符串中是否包含某個(gè)關(guān)鍵詞,也就是特定的子字符串,接下來(lái)通過(guò)本文給大家分享Python判斷字符串是否包含特定子字符串的多種方法(7種方法),需要的朋友可以參考下2023-03-03python實(shí)現(xiàn)讀取類別頻數(shù)數(shù)據(jù)畫水平條形圖案例
這篇文章主要介紹了python實(shí)現(xiàn)讀取類別頻數(shù)數(shù)據(jù)畫水平條形圖案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python二維數(shù)組不同初始化方式的差異說(shuō)明
這篇文章主要介紹了Python二維數(shù)組不同初始化方式的差異說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08python 開(kāi)發(fā)的三種運(yùn)行模式詳細(xì)介紹
這篇文章主要介紹了python 開(kāi)發(fā)的三種運(yùn)行模式詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-01-01Python進(jìn)階之使用selenium爬取淘寶商品信息功能示例
這篇文章主要介紹了Python進(jìn)階之使用selenium爬取淘寶商品信息功能,結(jié)合實(shí)例形式詳細(xì)分析了Python使用selenium與requests模塊爬取淘寶商品信息的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09