




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 Python 語法實戰(zhàn)指南目 錄 TOC o 1-3 h z u HYPERLINK l _Toc530830033 1.基礎(chǔ)語法 PAGEREF _Toc530830033 h 3 HYPERLINK l _Toc530830034 2.表達式與控制流 PAGEREF _Toc530830034 h 9 HYPERLINK l _Toc530830035 3.基本數(shù)據(jù)類型 PAGEREF _Toc530830035 h 11 HYPERLINK l _Toc530830036 4.集合類型 PAGEREF _Toc530830036 h 17 HYPERLINK l _Toc5308300
2、37 5.函數(shù) PAGEREF _Toc530830037 h 25 HYPERLINK l _Toc530830038 6.類與對象 PAGEREF _Toc530830038 h 31 HYPERLINK l _Toc530830039 7.異常與測試 PAGEREF _Toc530830039 h 37 HYPERLINK l _Toc530830040 8.存儲 PAGEREF _Toc530830040 h 39 HYPERLINK l _Toc530830041 9.網(wǎng)絡(luò)交互 PAGEREF _Toc530830041 h 45 HYPERLINK l _Toc530830042
3、10.數(shù)據(jù)存儲 PAGEREF _Toc530830042 h 47基礎(chǔ)語法Python 是一門高階、動態(tài)類型的多范式編程語言;定義 Python 文件的時候我們往往會先聲明文件編碼方式:# 指定腳本調(diào)用方式#!/usr/bin/env python# 配置 utf-8 編碼# -*- coding: utf-8 -*-# 配置其他編碼# -*- coding: -*-# Vim 中還可以使用如下方式# vim:fileencoding=人生苦短,請用 Python,大量功能強大的語法糖的同時讓很多時候 Python 代碼看上去有點像偽代碼。譬如我們用 Python 實現(xiàn)的簡易的快排相較于 J
4、ava 會顯得很短小精悍:def quicksort(arr): if len(arr) = 1: return arr pivot = arrlen(arr) / 2 left = x for x in arr if x pivot return quicksort(left) + middle + quicksort(right)print quicksort(3,6,8,10,1,2,1)# Prints 1, 1, 2, 3, 6, 8, 10控制臺交互可以根據(jù)_name_關(guān)鍵字來判斷是否是直接使用 python 命令執(zhí)行某個腳本,還是外部引用;Google 開源的 fire 也是不錯
5、的快速將某個類封裝為命令行工具的框架:import fireclass Calculator(object): A simple calculator class. def double(self, number): return 2 * numberif _name_ = _main_: fire.Fire(Calculator)# python calculator.py double 10 # 20# python calculator.py double -number=15 # 30Python 2 中 print 是表達式,而 Python 3 中 print 是函數(shù);如果希望在
6、Python 2 中將 print 以函數(shù)方式使用,則需要自定義引入:from _future_ import print_function我們也可以使用 pprint 來美化控制臺輸出內(nèi)容:import pprintstuff = spam, eggs, lumberjack, knights, nipprint.pprint(stuff)# 自定義參數(shù)pp = pprint.PrettyPrinter(depth=6)tup = (spam, (eggs, (lumberjack, (knights, (ni, (dead,(parrot, (fresh fruit,)pp.pprint(
7、tup)模塊Python 中的模塊(Module)即是 Python 源碼文件,其可以導(dǎo)出類、函數(shù)與全局變量;當(dāng)我們從某個模塊導(dǎo)入變量時,函數(shù)名往往就是命名空間(Namespace)。而 Python 中的包(Package)則是模塊的文件夾,往往由_init_.py指明某個文件夾為包:# 文件目錄someDir/ main.py siblingModule.py# siblingModule.pydef siblingModuleFun(): print(Hello from siblingModuleFun)def siblingModuleFunTwo(): print(Hello fr
8、om siblingModuleFunTwo)import siblingModuleimport siblingModule as sibModsibMod.siblingModuleFun()from siblingModule import siblingModuleFunsiblingModuleFun()try: # Import someModuleA that is only available in Windows import someModuleAexcept ImportError: try: # Import someModuleB that is only avail
9、able in Linux import someModuleB except ImportError:Package 可以為某個目錄下所有的文件設(shè)置統(tǒng)一入口:someDir/ main.py subModules/ _init_.py subA.py subSubModules/ _init_.py subSubA.py# subA.pydef subAFun(): print(Hello from subAFun)def subAFunTwo(): print(Hello from subAFunTwo)# subSubA.pydef subSubAFun(): print(Hello f
10、rom subSubAFun)def subSubAFunTwo(): print(Hello from subSubAFunTwo)# _init_.py from subDir# Adds subAFun() and subAFunTwo() to the subDir namespace from .subA import *# The following two import statement do the same thing, they add subSubAFun() and subSubAFunTwo() to the subDir namespace. The first
11、one assumes _init_.py is empty in subSubDir, and the second one, assumes _init_.py in subSubDir contains from .subSubA import *.# Assumes _init_.py is empty in subSubDir# Adds subSubAFun() and subSubAFunTwo() to the subDir namespacefrom .subSubDir.subSubA import *# Assumes _init_.py in subSubDir has
12、 from .subSubA import *# Adds subSubAFun() and subSubAFunTwo() to the subDir namespacefrom .subSubDir import *# _init_.py from subSubDir# Adds subSubAFun() and subSubAFunTwo() to the subSubDir namespacefrom .subSubA import *# main.pyimport subDirsubDir.subAFun() # Hello from subAFunsubDir.subAFunTwo
13、() # Hello from subAFunTwosubDir.subSubAFun() # Hello from subSubAFunsubDir.subSubAFunTwo() # Hello from subSubAFunTwo表達式與控制流條件選擇Python 中使用 if、elif、else 來進行基礎(chǔ)的條件選擇操作:if x 0: x = 0 print(Negative changed to zero) elif x = 0: print(Zero) else: print(More)Python 同樣支持 ternary conditional operator:a if c
14、ondition else b也可以使用 Tuple 來實現(xiàn)類似的效果:# test 需要返回 True 或者 False(falseValue, trueValue)test# 更安全的做法是進行強制判斷(falseValue, trueValue)test = True# 或者使用 bool 類型轉(zhuǎn)換函數(shù)(falseValue, trueValue)bool()循環(huán)遍歷for-in 可以用來遍歷數(shù)組與字典:words = cat, window, defenestratefor w in words: print(w, len(w)# 使用數(shù)組訪問操作符,能夠迅速地生成數(shù)組的副本for w
15、 in words: if len(w) 6: words.insert(0, w)# words - defenestrate, cat, window, defenestrate如果我們希望使用數(shù)字序列進行遍歷,可以使用 Python 內(nèi)置的range函數(shù):a = Mary, had, a, little, lambfor i in range(len(a): print(i, ai)基本數(shù)據(jù)類型可以使用內(nèi)建函數(shù)進行強制類型轉(zhuǎn)換(Casting):int(str)float(str)str(int)str(float)Number: 數(shù)值類型x = 3print type(x) # Pri
16、nts print x # Prints 3print x + 1 # Addition; prints 4print x - 1 # Subtraction; prints 2print x * 2 # Multiplication; prints 6print x * 2 # Exponentiation; prints 9x += 1print x # Prints 4x *= 2print x # Prints 8y = 2.5print type(y) # Prints print y, y + 1, y * 2, y * 2 # Prints 2.5 3.5 5.0 6.25布爾類
17、型Python 提供了常見的邏輯操作符,不過需要注意的是 Python 中并沒有使用 &、| 等,而是直接使用了英文單詞。t = Truef = Falseprint type(t) # Prints print t and f # Logical AND; prints Falseprint t or f # Logical OR; prints Trueprint not t # Logical NOT; prints Falseprint t != f # Logical XOR; prints TrueString: 字符串Python 2 中支持 Ascii 碼的 str() 類型,
18、獨立的 unicode() 類型,沒有 byte 類型;而 Python 3 中默認(rèn)的字符串為 utf-8 類型,并且包含了 byte 與 bytearray 兩個字節(jié)類型:type(Guido) # string type is str in python2# # 使用 _future_ 中提供的模塊來降級使用 Unicodefrom _future_ import unicode_literalstype(Guido) # string type become unicode# Python 字符串支持分片、模板字符串等常見操作:var1 = Hello World!var2 = Pyth
19、on Programmingprint var10: , var10print var21:5: , var21:5# var10: H# var21:5: ythoprint My name is %s and weight is %d kg! % (Zara, 21)# My name is Zara and weight is 21 kg!str0:4len(str)string.replace(-, ),.join(list)hi 0.format(j)str.find(,)str.index(,) # same, but raises IndexErrorstr.count(,)st
20、r.split(,)str.lower()str.upper()str.title()str.lstrip()str.rstrip()str.strip()str.islower()# 移除所有的特殊字符re.sub(A-Za-z0-9+, , mystring)如果需要判斷是否包含某個子字符串,或者搜索某個字符串的下標(biāo):# in 操作符可以判斷字符串if blah not in somestring: continue# find 可以搜索下標(biāo)s = This be a stringif s.find(is) = -1: print No is here!else: print Found
21、is in the string.Regex: 正則表達式import re# 判斷是否匹配re.match(raeiou, str)# 以第二個參數(shù)指定的字符替換原字符串中內(nèi)容re.sub(raeiou, ?, str)re.sub(r(xyz), r1, str)# 編譯生成獨立的正則表達式對象expr = pile(r.$)expr.match(.)expr.sub(.)下面列舉了常見的表達式使用場景:# 檢測是否為 HTML 標(biāo)簽re.search(*, )# 常見的用戶名密碼re.match(a-zA-Z0-9-_3,16$, Foo) is not Nonere.match(w|-
22、_3,16$, Foo) is not None# Emailre.match(a-z0-9_.-+)(da-z.-+).(a-z.2,6)$, hello.world)# Urlexp = pile(r(https?:/)? # match http or https (da-z.-+) # match domain .(a-z.2,6) # match domain (/w .-*)/?$ # match api or file , re.X)exp.match()# IP 地址exp = pile(r(?:(?:250-5 |20-40-9 |1?0-90-9?).)3 (?:250-5
23、 |20-40-9 |1?0-90-9?)$, re.X)exp.match()集合類型List: 列表Operation: 創(chuàng)建增刪list 是基礎(chǔ)的序列類型:l = l = list()# 使用字符串的 split 方法,可以將字符串轉(zhuǎn)化為列表str.split(.)# 如果需要將數(shù)組拼裝為字符串,則可以使用 join list1 = 1, 2, 3str1 = .join(list1)# 如果是數(shù)值數(shù)組,則需要先進行轉(zhuǎn)換list1 = 1, 2, 3str1 = .join(str(e) for e in list1)可以使用 append 與 extend 向數(shù)組中插入元素或者進行數(shù)組
24、連接x = 1, 2, 3x.append(4, 5) # 1, 2, 3, 4, 5x.extend(4, 5) # 1, 2, 3, 4, 5,注意 extend 返回值為 None可以使用 pop、slices、del、remove 等移除列表中元素:myList = 10,20,30,40,50# 彈出第二個元素myList.pop(1) # 20# myList: myList.pop(1)# 如果不加任何參數(shù),則默認(rèn)彈出最后一個元素myList.pop()# 使用 slices 來刪除某個元素a = 1, 2, 3, 4, 5, 6 index = 3 # Only Positiv
25、e indexa = a:index + aindex+1 :# 根據(jù)下標(biāo)刪除元素myList = 10,20,30,40,50rmovIndxNo = 3del myListrmovIndxNo # myList: 10, 20, 30, 50# 使用 remove 方法,直接根據(jù)元素刪除letters = a, b, c, d, enumbers.remove(numbers1)print(*letters) # used a * to make it unpack you dont have toIteration: 索引遍歷你可以使用基本的 for 循環(huán)來遍歷數(shù)組中的元素,就像下面介個
26、樣紙:animals = cat, dog, monkeyfor animal in animals: print animal# Prints cat, dog, monkey, each on its own line.如果你在循環(huán)的同時也希望能夠獲取到當(dāng)前元素下標(biāo),可以使用 enumerate 函數(shù):animals = cat, dog, monkeyfor idx, animal in enumerate(animals): print #%d: %s % (idx + 1, animal)# Prints #1: cat, #2: dog, #3: monkey, each on i
27、ts own linePython 也支持切片(Slices):nums = range(5) # range is a built-in function that creates a list of integersprint nums # Prints 0, 1, 2, 3, 4print nums2:4 # Get a slice from index 2 to 4 (exclusive); prints 2, 3print nums2: # Get a slice from index 2 to the end; prints 2, 3, 4print nums:2 # Get a
28、slice from the start to index 2 (exclusive); prints 0, 1print nums: # Get a slice of the whole list; prints 0, 1, 2, 3, 4print nums:-1 # Slice indices can be negative; prints 0, 1, 2, 3nums2:4 = 8, 9 # Assign a new sublist to a sliceprint nums # Prints 0, 1, 8, 9, 4Comprehensions: 變換Python 中同樣可以使用 m
29、ap、reduce、filter,map 用于變換數(shù)組:# 使用 map 對數(shù)組中的每個元素計算平方items = 1, 2, 3, 4, 5squared = list(map(lambda x: x*2, items)# map 支持函數(shù)以數(shù)組方式連接使用def multiply(x): return (x*x)def add(x): return (x+x)funcs = multiply, addfor i in range(5): value = list(map(lambda x: x(i), funcs) print(value)reduce 用于進行歸納計算:# reduce
30、將數(shù)組中的值進行歸納from functools import reduceproduct = reduce(lambda x, y: x * y), 1, 2, 3, 4)# Output: 24filter 則可以對數(shù)組進行過濾:number_list = range(-5, 5)less_than_zero = list(filter(lambda x: x 0: return positive elif x 0: return negative else: return zerofor x in -1, 0, 1: print sign(x)# Prints negative, zer
31、o, positivePython 支持運行時創(chuàng)建動態(tài)函數(shù),也即是所謂的 lambda 函數(shù):def f(x): return x*2# 等價于g = lambda x: x*2參數(shù)Option Arguments: 不定參數(shù)def example(a, b=None, *args, *kwargs): print a, b print args print kwargsexample(1, var, 2, 3, word=hello)# 1 var# (2, 3)# word: helloa_tuple = (1, 2, 3, 4, 5)a_dict = 1:1, 2:2, 3:3examp
32、le(1, var, *a_tuple, *a_dict)# 1 var# (1, 2, 3, 4, 5)# 1: 1, 2: 2, 3: 3生成器def simple_generator_function(): yield 1 yield 2 yield 3for value in simple_generator_function(): print(value)# 輸出結(jié)果# 1# 2# 3our_generator = simple_generator_function()next(our_generator)# 1next(our_generator)# 2next(our_gener
33、ator)#3# 生成器典型的使用場景譬如無限數(shù)組的迭代def get_primes(number): while True: if is_prime(number): yield number number += 1裝飾器裝飾器是非常有用的設(shè)計模式:# 簡單裝飾器from functools import wrapsdef decorator(func): wraps(func) def wrapper(*args, *kwargs): print(wrap function) return func(*args, *kwargs) return wrapperdecoratordef ex
34、ample(*a, *kw): passexample._name_ # attr of function preserve# example# Decorator # 帶輸入值的裝飾器from functools import wrapsdef decorator_with_argument(val): def decorator(func): wraps(func) def wrapper(*args, *kwargs): print Val is 0.format(val) return func(*args, *kwargs) return wrapper return decorat
35、ordecorator_with_argument(10)def example(): print This is example function.example()# Val is 10# This is example function.# 等價于def example(): print This is example function.example = decorator_with_argument(10)(example)example()# Val is 10# This is example function.類與對象類定義Python 中對于類的定義也很直接:class Gr
36、eeter(object): # Constructor def _init_(self, name): = name # Create an instance variable # Instance method def greet(self, loud=False): if loud: print HELLO, %s! % .upper() else: print Hello, %s % g = Greeter(Fred) # Construct an instance of the Greeter classg.greet() # Call an instance method; pri
37、nts Hello, Fredg.greet(loud=True) # Call an instance method; prints HELLO, FRED!# isinstance 方法用于判斷某個對象是否源自某個類ex = 10isinstance(ex,int)Managed Attributes: 受控屬性# property、setter、deleter 可以用于復(fù)寫點方法class Example(object): def _init_(self, value): self._val = value property def val(self): return self._val
38、 val.setter def val(self, value): if not isintance(value, int): raise TypeError(Expected int) self._val = value val.deleter def val(self): del self._val property def square3(self): return 2*3ex = Example(123)ex.val = str# Traceback (most recent call last):# File , line 1, in# File test.py, line 12,
39、in val# raise TypeError(Expected int)# TypeError: Expected int類方法與靜態(tài)方法class example(object): classmethod def clsmethod(cls): print I am classmethod staticmethod def stmethod(): print I am staticmethod def instmethod(self): print I am instancemethodex = example()ex.clsmethod()# I am classmethodex.stm
40、ethod()# I am staticmethodex.instmethod()# I am instancemethodexample.clsmethod()# I am classmethodexample.stmethod()# I am staticmethodexample.instmethod()# Traceback (most recent call last):# File , line 1, in# TypeError: unbound method instmethod() .對象實例化屬性操作Python 中對象的屬性不同于字典鍵,可以使用點運算符取值,直接使用 in
41、 判斷會存在問題:class A(object): property def prop(self): return 3a = A()print prop in a._dict_ =, prop in a._dict_print hasattr(a, prop) =, hasattr(a, prop)print p =, p# prop in a._dict_ = False# hasattr(a, prop) = True# p = 3建議使用 hasattr、getattr、setattr 這種方式對于對象屬性進行操作:class Example(object): def _init_(se
42、lf): = ex def printex(self): print This is an example# Check object has attributes# hasattr(obj, attr)ex = Example()hasattr(ex,name)# Truehasattr(ex,printex)# Truehasattr(ex,print)# False# Get object attribute# getattr(obj, attr)getattr(ex,name)# ex# Set object attribute# setattr(obj, attr, value)se
43、tattr(ex,name,example)# example異常與測試異常處理Context Manager - withwith 常用于打開或者關(guān)閉某些資源:host = localhostport = 5566with Socket(host, port) as s: while True: conn, addr = s.accept() msg = conn.recv(1024) print msg conn.send(msg) conn.close()單元測試from _future_ import print_functionimport unittestdef fib(n): r
44、eturn 1 if n=2 else fib(n-1)+fib(n-2)def setUpModule(): print(setup module)def tearDownModule(): print(teardown module)class TestFib(unittest.TestCase): def setUp(self): print(setUp) self.n = 10 def tearDown(self): print(tearDown) del self.n classmethod def setUpClass(cls): print(setUpClass) classme
45、thod def tearDownClass(cls): print(tearDownClass) def test_fib_assert_equal(self): self.assertEqual(fib(self.n), 55) def test_fib_assert_true(self): self.assertTrue(fib(self.n) = 55)if _name_ = _main_: unittest.main()存儲文件讀寫路徑處理Python 內(nèi)置的_file_關(guān)鍵字會指向當(dāng)前文件的相對路徑,可以根據(jù)它來構(gòu)造絕對路徑,或者索引其他文件:# 獲取當(dāng)前文件的相對目錄dir =
46、os.path.dirname(_file_) # srcapp# once youre at the directory level you want, with the desired directory as the final path node:dirname1 = os.path.basename(dir) dirname2 = os.path.split(dir)1 # if you look at the documentation, this is exactly what os.path.basename does.# 獲取當(dāng)前代碼文件的絕對路徑,abspath 會自動根據(jù)
47、相對路徑與當(dāng)前工作空間進行路徑補全os.path.abspath(os.path.dirname(_file_) # D:WorkSpaceOWStoolui-tool-svnpythonsrcapp# 獲取當(dāng)前文件的真實路徑os.path.dirname(os.path.realpath(_file_) # D:WorkSpaceOWStoolui-tool-svnpythonsrcapp# 獲取當(dāng)前執(zhí)行路徑os.getcwd()可以使用 listdir、walk、glob 模塊來進行文件枚舉與檢索:# 僅列舉所有的文件from os import listdirfrom os.path i
48、mport isfile, joinonlyfiles = f for f in listdir(mypath) if isfile(join(mypath, f)# 使用 walk 遞歸搜索from os import walkf = for (dirpath, dirnames, filenames) in walk(mypath): f.extend(filenames) break# 使用 glob 進行復(fù)雜模式匹配import globprint(glob.glob(/home/adam/*.txt)# /home/adam/file1.txt, /home/adam/file2.t
49、xt, 簡單文件讀寫# 可以根據(jù)文件是否存在選擇寫入模式mode = a if os.path.exists(writepath) else w# 使用 with 方法能夠自動處理異常with open(file.dat,mode) as f: f.write(.) . # 操作完畢之后記得關(guān)閉文件 f.close()# 讀取文件內(nèi)容message = f.read()復(fù)雜格式文件JSONimport json# Writing JSON datawith open(data.json, w) as f: json.dump(data, f)# Reading data backwith op
50、en(data.json, r) as f: data = json.load(f)XML我們可以使用lxml來解析與處理 XML 文件,本部分即對其常用操作進行介紹。lxml 支持從字符串或者文件中創(chuàng)建 Element 對象:from lxml import etree# 可以從字符串開始構(gòu)造xml = root = etree.fromstring(xml)etree.tostring(root)# b# 也可以從某個文件開始構(gòu)造tree = etree.parse(doc/test.xml)# 或者指定某個 baseURLroot = etree.fromstring(xml, base
51、_url=http:/where.it/is/from.xml)其提供了迭代器以對所有元素進行遍歷:# 遍歷所有的節(jié)點for tag in tree.iter(): if not len(tag): print tag.keys() # 獲取所有自定義屬性 print (tag.tag, tag.text) # text 即文本子元素值# 獲取 XPathfor e in root.iter(): print tree.getpath(e)lxml 支持以 XPath 查找元素,不過需要注意的是,XPath 查找的結(jié)果是數(shù)組,并且在包含命名空間的情況下,需要指定命名空間:root.xpath(/page/text/text(),ns=prefix:url)# 可以使用 getpare
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020英語試卷小學(xué)
- 統(tǒng)編版(2024)七年級上冊道德與法治《探究與分享+運用你的經(jīng)驗+單元思考與行動》 參考答案
- 熱力管網(wǎng)施工方案
- 廣西北流市2025屆中考生物考試模擬沖刺卷含解析
- 臨時施工便道合同范本
- 廠家采購原料合同范本
- 前臺文員的跨文化溝通能力提升計劃
- 加強市場定位與品牌策略的計劃
- 行業(yè)變化對團隊的影響計劃
- 提升企業(yè)安全管理水平的措施計劃
- 2024年度供應(yīng)商管理培訓(xùn)課件
- 6、水平四+田徑18課時大單元計劃-《雙手頭上前擲實心球》
- 電梯維保員服務(wù)用語培訓(xùn)
- 2024-2030年中國寫字樓行業(yè)發(fā)展態(tài)勢規(guī)劃分析報告版
- 《管理信息系統(tǒng)》考試復(fù)習(xí)題庫(含答案)
- 2024年9月抖音短視頻及直播電商月報
- 人教版初中全部英語單詞表
- 2024年浙江省中考社會試卷真題(含標(biāo)準(zhǔn)答案及評分標(biāo)準(zhǔn))
- 期末復(fù)習(xí)《《認(rèn)識100以內(nèi)的數(shù)》復(fù)習(xí)》(教案)2023-2024學(xué)年數(shù)學(xué)一年級下冊
- 2024年醫(yī)師定期考核必刷題庫附含參考答案
- 神經(jīng)外科護理病例討論-腦膜瘤課件
評論
0/150
提交評論