一、 python35個關鍵字列舉:
help("keywords")
檢視執行結果:
2. if、elif、else
3. for、while
4. True、False
5. continue、break
6. pass
7. try、except、finally、raise
8. import、from、as
9. def、return
10. class
11. lambda
12. del
13. global、nonlocal
14. in、is
15. None
16. assert
17. with
18. yield
19. async、await
二、關鍵字詳解:
and:如果兩個語句都返回True,則返回值將僅為True,否則它將返回False。
or:如果其中一條語句返回True,則返回值為True,否則它將返回False。
not:如果語句不是True,則返回值為True,否則返回False。
# 1. and、or、not (邏輯運運算元)
a = 5 > 3 and 1 < 2
b = 5 > 3 or 1 > 2
c = not (5 < 3)
print(a, b, c)
檢視執行結果:
if:用於建立條件語句(if語句),並且僅當條件為True時,才允許執行if程式碼塊。
elif:在條件語句(if語句)中使用,是else if的縮寫。
else:在條件語句(if語句)中使用,並確定在if條件為False時該執行的程式碼。
# 2.if、elif、else(條件語句)
age = int(input("請輸入您的年齡:"))
if age < 18:
print(f"您的歲數是{age},是一個未成年人")
elif age < 40:
print(f"您的歲數是{age},是一個青年人")
else:
print(f"您的歲數是{age},是一箇中老年人")
檢視執行結果:
for:用於建立一個for迴圈,它可以用來遍歷序列,例如列表,元組等。
while:用於定義while迴圈,while迴圈將繼續,直到while的條件為False。
# 3. for、while(迴圈語句)
languages = ["python", "java", "ruby"]
for i in languages: print(i,end="|")
print("-----分隔符-----")
a = 0
while a < 10:
print(a, end="|")
a += 1
檢視執行結果:
True:關鍵字True與1相同。
False:關鍵字False與0相同。
# 4. True、False(布林變數)
print(3 > 5)
print("p" in "python")
檢視執行結果:
continue:continue關鍵字用於在for迴圈(或while迴圈)中結束當前迭代,並繼續進行下一個迭代。
break:break關鍵字用於中斷for迴圈或while迴圈。
# continue、break(迴圈控制)
for i in range(10):
if i == 5:
continue
print(i, end="|")
print()
for i in range(10):
if i == 5:
break
print(i, end="|")
檢視執行結果:
迴圈,函數定義,類定義或if語句中不允許使用空程式碼,則可以使用pass;當執行pass語句時,不會有任何影響,只是佔位作用代表空白程式碼
# 6. pass(程式碼的預留位置)
def fun1():
pass
if 5 > 3:
pass
7. try、except、finally、raise(異常)
try:在try…except塊中使用,它定義了一個程式碼塊,並在沒有問題的情況下執行塊。如果包含任何錯誤,可以為不同的錯誤型別定義不同的塊。
except:在try… except塊中使用。 如果try塊引發錯誤,並在有問題的情況下執行對應的程式碼塊。
finally:在try…except塊中使用。它定義了一個程式碼塊,當try…except…else塊結束時,該程式碼塊將執行。無論try塊是否引發錯誤,都將執行finally程式碼塊。
raise:raise關鍵字用於引發異常,可以定義引發哪種錯誤,以及向用戶顯示錯誤資訊。
def div(x, y):
result = None
if (not isinstance(x, int)) and (not isinstance(x, float)) and (not isinstance(y, int)) and (
not isinstance(y, float)):
raise Exception("丟擲一個異常,輸入非數位!")
result = x / y
return result
div("哈哈", "我")
檢視執行結果:
def div(x, y):
result = None
try:
result = x / y
print(f"運算結果為{result}")
except Exception:
print("除數為0,異常!")
finally:
print("此語句必定指定")
return result
div(1, 2)
print("-----split-----")
div(1, 0)
檢視執行結果:
import:用於匯入模組。
from:用於從模組中匯入指定的部分,按需要匯入指定子類或函數,減少不必要的資源浪費。
as:用於建立別名。
# 8.import、from、as(模組匯入)
from time import sleep as s
print(time.ctime())
s(3)
print(time.ctime())
檢視執行結果:
def:用於建立(或定義)一個函數。
return:用於結束所定義的函數,並返回值。
# 9.def、return(函數)
def fun_sum(x, y):
return x + y
my_sum = fun_sum(3, 5)
print(my_sum)
查詢執行結果:
class關鍵字用於建立(或定義)一個類。
# 10. class(類)
class Student:
name = "xiaoming"
age = 14
s = Student()
name = s.name
age = s.age
print(name, age)
檢視執行結果:
lambda關鍵字用於建立一個 特殊的「匿名函數」
# 11. lambda(匿名函數)
g = lambda x: x ** 2
print(g(3))
檢視執行結果:
其他lambda函數使用可參考:https://www.cnblogs.com/mrwhite2020/p/16500321.html
在Python中,一切皆物件。del關鍵字主要用於刪除物件,還可以用於刪除變數,列表或列表的一部分等
# 12. del(刪除物件)
x = 1
del x
list1 = [1, 2, 3]
del list1[1]
print(list1)
檢視執行結果:
global關鍵字用於建立一個全域性變數。nonlocal關鍵字用於宣告一個非區域性變數,用於標識外部作用域的變數。
# 13. global、nonlocal(宣告變數作用域)
x = 10
def global_test():
global x
x = 5
return x
def nonlocal_test():
count = 0
def test2():
nonlocal count
count += 1
return count
return test2
num1 = global_test()
print(num1)
print(x)
print("---分割線---")
val = nonlocal_test()
print(val())
print(val())
print(val())
檢視執行結果:
# 14. in、is(判斷語句)
print("h" in "hello")
print(2 not in [1, 2, 3])
l1 = [1, 2, 3]
l2 = l1.copy()
l3 = l1
print(l1 is l2)
print(l1 is l3)
檢視執行結果:
None關鍵字用於定義一個空值(根本沒有值),與0,False或空字串不同。 None是其自身的資料型別(NoneType)
# 15.None(空值)
x = None
print(x)
y = [2, 3, 1].reverse()
print(y)
檢視執行結果:
偵錯程式碼時,使用assert關鍵字。主要用於測試程式碼中的條件是否為True,如果為False,將引發AssertionError
# 16. assert(測試程式碼)
x = 10
try:
assert x == 10
print(f"測試成功")
assert x == 11
except:
print(f"測試失敗,x正確值為{x}")
檢視執行結果:
with常和open使用,用於讀取或寫入檔案
# 17. with(檔案處理)
with open("test001.txt", "r") as f:
print(f.readl())
檢視執行結果:
yield關鍵字結束一個函數,返回一個生成器,用於從函數依次返回值。
# 18. yield(生成器)
def yield_test():
yield 10
print(yield_test())
print(next(yield_test()))
檢視執行結果:
(1)協程(Coroutine),也可以被稱為微執行緒,是一種使用者態內的上下文切換技術。簡而言之,其實就是通過一個執行緒實現程式碼塊相互切換執行
yield,生成器,藉助生成器的特點也可以實現協程程式碼
async & awiat,在Python3.5中引入的兩個關鍵字,結合asyncio模組可以更方便的編寫協程程式碼
(2)async 用來宣告一個函數為非同步函數,非同步函數的特點是能在函數執行過程中掛起,去執行其他非同步函數,等到掛起條件(假設掛起條件是sleep(5))消失後,也就是5秒到了再回來執行
(3)await 用來用來宣告程式掛起,比如非同步程式執行到某一步時需要等待的時間很長,就將此掛起,去執行其他的非同步程式。await 後面只能跟非同步程式或有__await__屬性的物件,因為非同步程式與一般程式不同
(4)舉例說明:
假設有兩個非同步函數async a,async b,a中的某一步有await,當程式碰到關鍵字await b()後,非同步程式掛起後去執行另一個非同步b程式,就是從函數內部跳出去執行其他函數,當掛起條件消失後,不管b是否執行完,要馬上從b程式中跳出來,回到原程式執行原來的操作。如果await後面跟的b函數不是非同步函數,那麼操作就只能等b執行完再返回,無法在b執行的過程中返回。如果要在b執行完才返回,也就不需要用await關鍵字了,直接呼叫b函數就行。所以這就需要await後面跟的是非同步函數了。在一個非同步函數中,可以不止一次掛起,也就是可以用多個await。
(5)程式示範:
# 19. async、await(多執行緒)
async def test2(i):
r = await other_test(i)
print(i, r)
async def other_test(i):
r = requests.get(i)
print(i)
await asyncio.sleep(4)
print(time.time() - start)
return r
url = ["https://segmentfault.com/p/1210000013564725",
"https://www.jianshu.com/p/83badc8028bd",
"https://www.baidu.com/"]
loop = asyncio.get_event_loop()
task = [asyncio.ensure_future(test2(i)) for i in url]
start = time.time()
loop.run_until_complete(asyncio.wait(task))
endtime = time.time() - start
print(endtime)
loop.close()
檢視執行結果:
20. 參考案例:
https://blog.csdn.net/weixin_43413709/article/details/110820501
https://www.php.cn/python-tutorials-490200.html
https://blog.csdn.net/weixin_43413709/article/details/110820501