python基礎培訓ppt課件_第1頁
python基礎培訓ppt課件_第2頁
python基礎培訓ppt課件_第3頁
python基礎培訓ppt課件_第4頁
python基礎培訓ppt課件_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、python基礎培訓1.2培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗3什么是什么是PythonPython優(yōu)雅而健壯的編程語言優(yōu)雅而健壯的編程語言注重如何解決問題注重如何解決問題4Python的特點高級高級面向?qū)ο竺嫦驅(qū)ο罂梢浦残钥梢浦残钥蓴U展性可擴展性可嵌入性可嵌入性健壯性健壯性解釋性解釋性易學易讀易用易學易讀易用5為什么是為什么是python簡單易學,功能豐富簡單易學,功能豐富與與c、c+、java相比相比與其他的腳本語言相比與其他的腳本語言相比 perl:對符號語

2、法的過度使用:對符號語法的過度使用 javascript:通常嵌入到:通常嵌入到html網(wǎng)頁,依賴瀏覽器網(wǎng)頁,依賴瀏覽器6下載和安裝下載和安裝下載:下載: 安裝安裝環(huán)境變量:環(huán)境變量:Path=C:Program FilesPython247Hello World第一個第一個Python程序程序 print “Hello World!”命令行命令行編輯器編輯器8Python的語法特色的語法特色注釋注釋 (#)繼續(xù)繼續(xù) ()多個語句構成的代碼組多個語句構成的代碼組 (:)縮進分隔縮進分隔模塊模塊help9培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和

3、循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗10Python的基礎的基礎變量變量變量的賦值變量的賦值 astring = “hello” 增量賦值:增量賦值:x += 1 (python2.0開始開始)、 多重賦值:多重賦值:x = y = z = 1 多元賦值:多元賦值:x, y, z = 1, 2, “hello” ( x, y, z) = (1, 2, “hello”) 提高可讀性提高可讀性11Python的基礎的基礎標識符標識符第一個字符必須是字母或下劃線第一個字符必須是字母或下劃線_其他字符可以是字母、數(shù)字或下劃線其他字符可以是字母、數(shù)字或下劃線大小寫

4、敏感大小寫敏感關鍵字:關鍵字:12Python的基礎的基礎無處不在的引用無處不在的引用變量的定義:在第一次賦值時自動聲明變量的定義:在第一次賦值時自動聲明Python是一種動態(tài)類型的語言是一種動態(tài)類型的語言無處不在的引用:無處不在的引用: Python中的每個值中的每個值(而不是變量而不是變量)都有一個唯一的標識都有一個唯一的標識 任何變量名之間的賦值都是引用的賦值任何變量名之間的賦值都是引用的賦值 x = 3 y = x z = y13培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異

5、常實驗實驗14Python的對象的對象任何類型的值都是一個對象任何類型的值都是一個對象Python對象的三個特性對象的三個特性 身份:用身份:用id()查看查看 類型:用類型:用type()查看查看 值值15Python數(shù)據(jù)類型數(shù)據(jù)類型概述概述標準類型標準類型 數(shù)字數(shù)字 Integer 整型整型 Boolean 布爾型布爾型 Long integer 長整型長整型 Floating point real number 浮點型浮點型 Complex number 復數(shù)型復數(shù)型 String 字符串字符串 List 列表列表 Tuple 元組元組 Dictionary 字典字典16Python數(shù)據(jù)

6、類型數(shù)據(jù)類型概述(續(xù))概述(續(xù))其他的內(nèi)建類型其他的內(nèi)建類型 Type 類型類型 Null對象對象 文件文件 Set 集合集合 函數(shù)函數(shù) 模塊模塊 類類17Python數(shù)據(jù)類型數(shù)據(jù)類型標準類型操作符標準類型操作符對象值的比較對象值的比較對象身份比較對象身份比較 x=y=3.3 x=3.3;y=3.3 x=3.3;y=2+1.3 x is y布爾類型操作符布爾類型操作符18Python數(shù)據(jù)類型數(shù)據(jù)類型標準類型內(nèi)建函數(shù)標準類型內(nèi)建函數(shù)type()cmp() obj1obj2 返回正數(shù)返回正數(shù) Obj1=obj2 返回返回0str()和和repr()以及以及 操作符操作符 以字符串的方式獲得對象的類

7、型、內(nèi)容、數(shù)值等屬性以字符串的方式獲得對象的類型、內(nèi)容、數(shù)值等屬性eval()19Python數(shù)據(jù)類型數(shù)據(jù)類型可變對象和不可變對象可變對象和不可變對象不可變對象:對象創(chuàng)建之后,其值不能更新不可變對象:對象創(chuàng)建之后,其值不能更新可變對象:對象創(chuàng)建之后,其值可以更新可變對象:對象創(chuàng)建之后,其值可以更新20培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗數(shù)字類型數(shù)字類型序列類型序列類型字符串字符串列表列表元組元組映射類型映射類型字典字典21Python數(shù)據(jù)類型數(shù)據(jù)類型數(shù)字數(shù)字整型:

8、整型:32位機器上,標準整型的取值范圍是位機器上,標準整型的取值范圍是-231231-1布爾型:只有兩個值的整型布爾型:只有兩個值的整型(0和和1),python2.3開始支持布爾型開始支持布爾型長整型:標準整型的超級,能表達的數(shù)值僅與機器支持的內(nèi)存大小有關系。長整型:標準整型的超級,能表達的數(shù)值僅與機器支持的內(nèi)存大小有關系。23434333L雙精度浮點型:占雙精度浮點型:占8個字節(jié)個字節(jié)(64位位),其中,其中53位表示底,位表示底,11位表示指數(shù),一位表位表示指數(shù),一位表示符號。示符號。-77.,2.3434433,9.78e-23,float(12)復數(shù):復數(shù):a=4.56+8j; a.

9、real表示實部,表示實部,a.imag表示虛部表示虛部22數(shù)字類型的操作符數(shù)字類型的操作符支持不同的數(shù)字類型相支持不同的數(shù)字類型相加加強制類型轉換強制類型轉換23數(shù)字類型的操作符數(shù)字類型的操作符(續(xù)續(xù))算數(shù)操作符算數(shù)操作符功能功能expr1*expr2冪運算冪運算+expr結果符號不變結果符號不變-expr對結果符號去負對結果符號去負expr1 * expr2表達式表達式1乘以表達式乘以表達式2expr1 / expr2表達式表達式1除以表達式除以表達式2(傳統(tǒng)除或真正除)(傳統(tǒng)除或真正除)expr1 / expr2表達式表達式1地板除以表達式地板除以表達式2(python2.2加入加入)e

10、xpr1 % expr2表達式表達式1對表達式對表達式2取余(模除)取余(模除)expr1 + expr2加加expr1 - expr2減減24數(shù)字類型的操作符數(shù)字類型的操作符(續(xù)續(xù))位操作符(只適用于整型)位操作符(只適用于整型)位操作符位操作符功能功能num單目運算,對數(shù)的每一位取反單目運算,對數(shù)的每一位取反num1 num2num1左移左移num2位位num1 & num2num1與與num2按位與按位與num1 num2num1異或異或num2num1 | num2num1與與num2按位或按位或25數(shù)字類型的內(nèi)建函數(shù)數(shù)字類型的內(nèi)建函數(shù)轉換函數(shù):將其他類型的數(shù)字轉換為相應類型轉

11、換函數(shù):將其他類型的數(shù)字轉換為相應類型 int()、long()、float()、complex() bool() python2.2開始開始功能函數(shù):功能函數(shù): abs(num) 絕對值絕對值 coerce(num1,num2) 將將num1和和num2轉換為同一類型,然后以一個元轉換為同一類型,然后以一個元組的形式返回組的形式返回 divmod(num1,num2) 獲得商和余數(shù)的元組獲得商和余數(shù)的元組 pow(num1,num2,mod=1) 指數(shù)運算指數(shù)運算 round(flt,ndig=1) 對浮點型進行四舍五入運算對浮點型進行四舍五入運算26數(shù)字類型的相關模塊數(shù)字類型的相關模塊模塊

12、模塊介紹介紹decimal十進制浮點運算類(十進制浮點運算類(Decimal)math/cmath標準標準C庫數(shù)學運算函數(shù)。常規(guī)數(shù)學運算在庫數(shù)學運算函數(shù)。常規(guī)數(shù)學運算在math模塊,復數(shù)運算在模塊,復數(shù)運算在cmath模塊模塊random多種位隨機數(shù)生成器多種位隨機數(shù)生成器27序列類型序列類型字符串、列表、元組字符串、列表、元組序列:成員有序排列,可以通過下標訪問其成員序列:成員有序排列,可以通過下標訪問其成員字符串:字符串:hello “hello” hello列表:列表:2,4,python 2.4, 6.8, python, 1, 3, “hello world”元組元組:(3.3, 6

13、, “computer”) (4, (“hello”, 9), 1.1, 5.7, 8)序列有相同的訪問方式:序列有相同的訪問方式:28培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗數(shù)字類型數(shù)字類型序列類型序列類型字符串字符串列表列表元組元組映射類型映射類型字典字典29序列類型的操作符序列類型的操作符成員關系操作符:成員關系操作符:in, not in連接操作符:連接操作符:+重復操作符:重復操作符:*切片操作:切片操作: : : 0indexperson = name,

14、savings, 100.00 hubby = person: # slice copy wifey = list(person) # fac func copy id(x) for x in person, hubby, wifey淺拷貝淺拷貝深拷貝深拷貝 copy.deepcopy Import copy hubby = person: # slice copy wifey = copy.deepcopy(person)copy模塊:模塊:copy()淺拷貝,淺拷貝,deepcopy()深拷貝深拷貝46序列類型小結序列類型小結操作符操作符 in, not in, +, *, , :, :內(nèi)

15、建函數(shù)內(nèi)建函數(shù) list, str, unicode, tuple, enumerate, len, max, min, reversed, zip, sorted raw_input, char, ord sum模塊模塊 string, copy, re47培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗數(shù)字類型數(shù)字類型序列類型序列類型字符串字符串列表列表元組元組映射類型映射類型字典字典48映射類型映射類型字典字典key1:value1, key2:value2, key3

16、:value3, 創(chuàng)建字典和賦值創(chuàng)建字典和賦值 dict1= 創(chuàng)建一個空字典創(chuàng)建一個空字典 dict2=name:joe,age:30 dict()方法方法訪問字典中的值訪問字典中的值 通過鍵訪問相應的值通過鍵訪問相應的值 dict2name 訪問字典的鍵訪問字典的鍵 dict2.keys(),返回一個列表,返回一個列表 訪問字典的值訪問字典的值 dict2.values(), 返回一個列表返回一個列表 遍歷一個字典遍歷一個字典 執(zhí)行中字典的鍵不能被改變執(zhí)行中字典的鍵不能被改變刪除字典元素和字典刪除字典元素和字典 del dict2name del dict249字典類型的操作符字典類型的操作

17、符標準類型操作符標準類型操作符映射類型操作符映射類型操作符 字典鍵查找操作符字典鍵查找操作符 (鍵鍵)成員關系操作符成員關系操作符 in, not in50字典類型的內(nèi)建函數(shù)字典類型的內(nèi)建函數(shù)type() str()比較函數(shù)比較函數(shù) cmp()51字典類型的內(nèi)建函數(shù)字典類型的內(nèi)建函數(shù)dict(container):創(chuàng)建字典的工廠函數(shù)。如果提供了容器類,就用其中的條創(chuàng)建字典的工廠函數(shù)。如果提供了容器類,就用其中的條目填充字典,否則創(chuàng)建一個空字典目填充字典,否則創(chuàng)建一個空字典len(): 返回鍵值對的數(shù)目返回鍵值對的數(shù)目hash(): 判斷某個對象是否可以作為字典的鍵判斷某個對象是否可以作為字典的

18、鍵不可變類型是可哈希的不可變類型是可哈希的52字典類型的內(nèi)建函數(shù)字典類型的內(nèi)建函數(shù)(續(xù)續(xù))方法名字方法名字操作操作dict.clear()刪除字典中的所有元素刪除字典中的所有元素dict.copy()返回一個字典的副本(淺拷貝)返回一個字典的副本(淺拷貝)dict.fromkeys(seq, val=None)創(chuàng)建并返回一個新的字典,以創(chuàng)建并返回一個新的字典,以seq中的元素為鍵,中的元素為鍵,val為值為值dict.get(key, d=none)返回鍵返回鍵key對應的值,若該鍵不存在,返回對應的值,若該鍵不存在,返回ddict.items()返回一個包含字典中鍵、值對元組的列表返回一個包

19、含字典中鍵、值對元組的列表dict.iteritems()返回一個包含字典中鍵、值對元組的列表的迭代子返回一個包含字典中鍵、值對元組的列表的迭代子dict.iterkeys()返回鍵列表的迭代子返回鍵列表的迭代子dict.itervalues()返回值列表的迭代子返回值列表的迭代子dict.keys()返回字典中鍵的列表返回字典中鍵的列表dict.values()返回字典中值的列表返回字典中值的列表dict.pop(key,default)與與get相似,但是將鍵值對彈出相似,但是將鍵值對彈出dict.setdefault()與與類型,若鍵不存在,則使用默認值類型,若鍵不存在,則使用默認值di

20、ct.update(dict2)將將dict2的鍵值對添加到字典的鍵值對添加到字典dict53培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗54條件表達式條件表達式if語句語句 If expression: expr_true_suitelse語句語句 if expression: expr_true_suit else: expr_false_suitelif語句語句(即即else-if) if expression: expr_true_suit elif: expr_

21、true_suit else: none_of_the_above_suit三元操作符三元操作符 x if xy else y55循環(huán)表達式循環(huán)表達式while語句語句 while expression: suit_to_repeatfor語句語句 For iter_var in iterable: suit_to _repeat 通過序列項迭代通過序列項迭代 通過序列索引迭代(通過序列索引迭代(range()) 使用項和索引迭代使用項和索引迭代 (enumerate() 與序列相關的內(nèi)建函數(shù):與序列相關的內(nèi)建函數(shù):sorted、reversed、enumerate、zip56循環(huán)表達式循環(huán)表

22、達式break語句continue語句pass語句while-else語句或for-else語句57迭代器和迭代器和iter()函數(shù)函數(shù)迭代器:有一個迭代器:有一個next()方法的對象方法的對象 StopIteration異常異常 reversed() 返回一個反向迭代器返回一個反向迭代器 enumerate() 使用迭代器使用迭代器 iter() next() for循環(huán)循環(huán)58培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗59函數(shù)函數(shù)創(chuàng)建函數(shù)創(chuàng)建函數(shù) def func

23、tion_name():函數(shù)的參數(shù)函數(shù)的參數(shù)函數(shù)的返回值函數(shù)的返回值調(diào)用函數(shù)調(diào)用函數(shù)局部變量局部變量global語句語句文檔字符串文檔字符串60培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗61模塊模塊什么是模塊什么是模塊實現(xiàn)代碼重用實現(xiàn)代碼重用導入模塊導入模塊 import from import 導入指定模塊的屬性導入指定模塊的屬性sys模塊介紹模塊介紹 包含了與包含了與python解釋器和它的環(huán)境有關的函數(shù)解釋器和它的環(huán)境有關的函數(shù) exit、argv、pathtim

24、e模塊介紹模塊介紹 time.time() 獲取當前時間獲取當前時間(整數(shù)形式整數(shù)形式) time.localtime() 當前時間的當前時間的struct_time形式形式 time.ctime() 當前時間的字符串形式當前時間的字符串形式 Time.mktime() 由由struct_time得到當前的秒數(shù)得到當前的秒數(shù)62模塊模塊(續(xù)續(xù))os模塊介紹模塊介紹 包含普遍的操作系統(tǒng)功能包含普遍的操作系統(tǒng)功能 指示正在使用的平臺指示正在使用的平臺 os.getcwd() 獲得當前獲得當前python腳本的工作目錄腳本的工作目錄 os.getenv() 讀取環(huán)境變量讀取環(huán)境變量

25、os.listdir() 返回指定目錄下的所有文件和目錄名返回指定目錄下的所有文件和目錄名 os.remove() 刪除一個文件刪除一個文件 os.system() 用來運行用來運行shell命令命令 os.sep 根據(jù)當前操作系統(tǒng),給出目錄分隔符根據(jù)當前操作系統(tǒng),給出目錄分隔符 os.path.isfile() 檢驗給出的路徑是不是文件檢驗給出的路徑是不是文件 os.path.isdir() 檢驗給出的路徑是不是目錄檢驗給出的路徑是不是目錄63模塊模塊(續(xù)續(xù))模塊的名字模塊的名字 _name_ if _name_ = _main_:創(chuàng)建自己的模塊創(chuàng)建自己的模塊dir() 列出模塊定義的標識符

26、列出模塊定義的標識符64培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗65面向?qū)ο缶幊堂嫦驅(qū)ο缶幊填悾阂环N數(shù)據(jù)結構,封裝了屬性和方法類:一種數(shù)據(jù)結構,封裝了屬性和方法類的定義類的定義 class ClassName(object): class documentation string #文檔字符串 class_suite #類體_init_函數(shù):類的構造器函數(shù):類的構造器實例化實例化 第一步:創(chuàng)建實例對象第一步:創(chuàng)建實例對象 第二步:檢查是否實現(xiàn)了第二步:檢查是否實現(xiàn)了_

27、init_方法方法66面向?qū)ο缶幊堂嫦驅(qū)ο缶幊蘳elf:相當于:相當于this指針指針綁定綁定 方法僅僅是類內(nèi)部定義的函數(shù)方法僅僅是類內(nèi)部定義的函數(shù) 方法只有在其所屬類擁有實例時,才能被調(diào)用方法只有在其所屬類擁有實例時,才能被調(diào)用類的屬性與實例的屬性類的屬性與實例的屬性 類的屬性:僅與被定義的類綁定類的屬性:僅與被定義的類綁定(包括數(shù)據(jù)屬性和方法屬性包括數(shù)據(jù)屬性和方法屬性) 實例屬性:獨立于其他的類或?qū)嵗?,僅擁有數(shù)據(jù)屬性實例屬性:獨立于其他的類或?qū)嵗?,僅擁有數(shù)據(jù)屬性67面向?qū)ο缶幊堂嫦驅(qū)ο缶幊坛蓡T的訪問類型成員的訪問類型 公有,私有?公有,私有? _XXX 不允許不允許from myModul

28、e import *導入導入 _XXX 類的私有成員類的私有成員 _XXX_ 系統(tǒng)定義的名字系統(tǒng)定義的名字繼承繼承 實現(xiàn)代碼的重用實現(xiàn)代碼的重用 _init_方法中調(diào)用基類的該方法,并傳遞方法中調(diào)用基類的該方法,并傳遞self參數(shù)參數(shù) 子類會覆蓋父類同名的函數(shù)子類會覆蓋父類同名的函數(shù)多重繼承多重繼承68典型的典型的python文件結構文件結構69培訓內(nèi)容培訓內(nèi)容python概述概述python基礎基礎python對象對象條件和循環(huán)條件和循環(huán)函數(shù)函數(shù)模塊模塊面向?qū)ο缶幊堂嫦驅(qū)ο缶幊涛募嚓P文件相關異常異常實驗實驗70文件相關文件相關打開文件打開文件 open(name,mode)、) 打開文件失

29、敗時會產(chǎn)生一個打開文件失敗時會產(chǎn)生一個IOError異常異常文件模式文件模式操作操作r以讀方式打開以讀方式打開w以寫方式打開(必要時清空)以寫方式打開(必要時清空)a以追加模式打開(從以追加模式打開(從EOF開始,必要時創(chuàng)開始,必要時創(chuàng)建新文件)建新文件)r+以讀寫模式打開以讀寫模式打開w+以讀寫模式打開(參見以讀寫模式打開(參見w)a+以讀寫模式打開(參見以讀寫模式打開(參見a)rb以二進制讀模式打開以二進制讀模式打開wb以二進制寫模式打開(參見以二進制寫模式打開(參見w)ab以二進制追加模式打開(參見以二進制追加模式打開(參見a)rb+以二進制讀寫模式打開(參見以二進制讀寫模式打開(參見r+)71文件相關文件相關寫文件寫文件 write(str) 向文件寫入字符串向文件寫入字符串 writelines(seq) 列表或元組為參數(shù),將其寫入文件列表或元組為參數(shù),將其寫入文件讀文件讀文件 read() 讀取內(nèi)容到字符串讀取內(nèi)容到字符串 readli

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論