Python語言初學總結


課程名稱:程序設計方法學

實驗1:程序設計語言工具

時間:2015年10月21日星期三,第3、4節 地點:理工樓1#208

 

一、實驗目的

1、深入理解程序設計語言及其幾種常見的編程范型;

2、激發學生對編程語言的興趣;

3、培養學生的自學能力。

二、實驗內容

    學習一門新的程序設計語言(不能是已經學習過的C\C#\C++\JAVA\PASCAL),通過使用該門語言編程,解決一個實際問題。

    要求:

    1.實驗報告中應首先詳細說明待解決的問題、你所使用的語言以及選擇的開發環境;

    2.實驗報告中應附上完整的源代碼(有對應的設計圖表,如流程圖等請一並附上),以及在本地計算機上調試、運行該程序的截圖(要求截圖的結果中能體現個人的學號、姓名等信息)。

3.結合上述解題過程,簡要說明該語言的特點(如其支持的編程范型及語法特性等)和你使用該語言的心得體會。(要求500字以上)

 三、實驗環境

硬件條件:微型計算機

操作系統:Windows 7 操作系統

開發環境:PyCharm Python  IDE 集成開發環境)

 四、實驗步驟和結果

(一)待解決的問題描述

    輸入若干學生的信息(信息包括:學生姓名、學生成績、學生性別),然后根據學生成績對學生進行排序,按成績由高到低輸出學生信息列表。

(二)解決該問題所用的語言

       Python 語言(基於 Python 2.X 版本)

(三)選擇的開發環境:

       PyCharm Python  IDE 集成開發環境)

 (四)解題過程的實驗操作步驟

1.分析題目后所畫出的程序流程圖如下:

 

2.在集成開發環境“PyCharm”上的代碼實現如下:

#-*-coding:utf-8-*- # 此語句的作用是:讓py源文件里面可以有中文
class Student(object):
    # 自定義一個Student類,包括學號、姓名、分數、性別等信息
    def __init__(self,number, name, score, sex):
    # 初始化Student,參數 number,name,score,sex
        self.number = number
        self.name = name
        self.score = score
        self.sex = sex
    def __cmp__(self, other):
    # 重寫比較方法,根據Student類屬性score進行比較
        return cmp(self.score, other.score)
    def show(self):
        return 'number:'+self.number+'name:'+self.name+'; score:'+str(self.score)+'sex:'+self.sex

def get_input():   # 獲取控制台的輸入
    number = raw_input('Please input number : ')
    if not number:   # 當學號輸入為空時,返回None
        return (None,None,None,None )
    name = raw_input('Please input name : ')
    score = raw_input('Please input %s\'s score : ' % name)
    sex = raw_input('Please input  %s\'s sex : '% name)
    if number and name and score and sex:
        return (number, name,int(score),sex)  # 為方便比較,將score強制轉換為int型
    else:
        return (None, None, None, None)

def main():
    s_list = []
    while True:  # 一直循環輸入【學生的學號、姓名、成績及性別】
        number, name, score, sex = get_input()
        if number and name and score and sex:
            s = Student(number, name, score, sex)
            s_list.append(s)
        else:  # 當輸入姓名或成績為空時跳出循環
            break
    s_list.sort(reverse=True)  #  對Student實體進行排序(reverse=True表示逆序排序,即從大到小排序)
    print("排序列表如下所示:")
    for i, s in enumerate(s_list): # 遍歷已經排序的實體列表,並進行顯示
        print ' '.join([str(i+1), s.number, s.name, str(s.score), s.sex])

if __name__ == '__main__':  # 調用主函數
    main()

 

3.對上述代碼的相關說明

 (1)在代碼首行輸入了:#-*-coding:utf-8-*- 的原因:

    py文件當中是不支持中文的,即使輸入的注釋是中文也不行,為了解決這個問題,就需要把文件編碼類型改為UTF-8的類型,輸入這個代碼就可以讓PY源文件里面有中文了。而且注意要寫在所有代碼的第一行。

(2)關於函數的定義:

       ①關鍵字def 用於告訴Python,正在定義一個新的函數。

       ②類中的函數名稱兩邊有下划線(如:__init__)。這種特殊方法意味着,當創建新的對象時,該方法就會被調用,就可以把我們自己的類型變成Python的內置類型那樣了,此即提高了程序的可讀性。

       ③函數定義的參數列表中有自動的self,這樣當Python 在調用某個對象中的某個方法時,會自動將該對象的引用作為該方法的第一個參數傳進去,然后我們就可以在該函數中訪問該對象的實例變量了(即在相應的變量上使用點運算符)。所以,關於self 的規則就意味着,當我們在定義一個方法時,除了實際需要傳入的那些參數之外,還必須再多寫一個。相反,當我們在調用某個方法時,實際提供的參數要比該方法定義中所需的少一個才行。最重要的一點是需要將self 放在成員變量之前。     

 (3)Python自帶一些預定義的函數,成為內置函數(built-in),上述代碼中使用raw_input 內置函數來從鍵盤上讀取一行文本。“raw”意味着它將以字符串的形式返回用戶輸入的一切內容,哪怕有些內容看上去像是一個數字。如果希望用戶輸入一個數字,那就必須用int float 將得到的字符串轉換為所需的類型。

 (4s_list.sort(reverse=True) 是對Student實體進行排序(reverse=True表示逆序排序,即從大到小排序;若reverse=False則表示是順序排序,即從小到大排序)

  4.代碼執行結果截圖如下:

 

五、實驗結果和討論

 通過分析問題,畫出了相應的流程圖,編寫代碼實現,調試運行代碼后得到的示例結果截圖如下所示:

 

 

六、總結

(一)本次實驗按時按量完成。通過實驗基本掌握了新的一門程序設計語言。

(二)本次實驗使我深入理解了程序設計語言及其幾種常見的編程范型;也、激發了我對編程語言的興趣;而且很大程度的提升了我的自學能力。

(三)Python 語言的特點:

  1.Python是一種面向對象、解釋型的計算機程序設計語言。

  2.Python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL(GNU General Public License)協議。

  3.Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進。

  4.Python具有豐富和強大的庫。

  5.Python常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯結在一起,能夠跨平台使用。

  6.Python三大優點:簡單、功能強大、支持面向對象。

  7.Python支持命令式編程、面向對象程序設計、函數式編程、面向切面編程、泛型編程多種編程范式。

(四)使用Python 語言的心得體會

      Python是一種簡單易學,功能強大的編程語言,它有高效率的高層數據結構,能簡單而有效地實現面向對象編程。Python簡潔的語法和對動態輸入的支持,再加上解釋性語言的本質,使得它在大多數平台上的很多領域都是一個理想的腳本語言,特別適用於快速的應用程序開發。

     首先Python 語言是一門腳本語言。Python在設計上堅持了清晰划一的風格,簡潔優雅,沒有了大括號,沒有了分號,使得Python變得非常的整潔。而且它是一門易讀、易維護,可移植性非常好,可以在linuxwindows、蘋果等多種操作系統上運行,並且被大量用戶所歡迎的、用途廣泛的語言。Python的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。這就是Python給我的有很嚴格的縮進規則的感覺。 

     其次Python 語言是一門動態語言。在命令行下面輸入一個1+1,回車之后就能給個2的結果。不要編譯連接等步驟,一邊寫代碼一邊就可以有結果。不過在此我更是覺得Python語言或許更適合作為一門入門語言。首先從語法上講,Python語言比現在很多作為第一編程語言 (C/C++、Visual Basic等)要簡單很多。其次,這種解釋語言的機制,更能讓我們這些初學者體驗到學習成果,不需要了解很多東西,也能編出個小程序來,這個過程比其他語言要快和簡單很多。再次,從我們自學的角度來講,搭建Python的基礎開發環境也很簡單,只要安裝一個十幾兆的程序,就得到了一個命令行工具,一個簡單的GUI的IDEL,還有其他文檔等,這樣就不必把時間太多用在開發工具上了,它不像學習C++等這些語言還要去逐步熟悉Visual C++等工具。此外,還有一點就是Python的學習很有彈性,我稍微學一點就能做點東西,而想要深入研究仍然有無窮的方向可以選擇,因為Python的應用范圍也是很廣闊。

     最后,Python 是強類型的。為變量指定數據類型稱為“強類型”。Python有一個統一的、明確的、強大的類型系統,比Java的類型系統更強,而且Python的這種強類型是屬於動態型的強類型。

     真正的學習其實是在自己寫應用腳本或程序的時候,在寫的時候肯定會有不明白的東西,這就需要去網上查資料,一來二去就明白了。學習Python語言的過程中查閱了不少線上線下的資料,遇到不會的東西,通過自己先查資料自己解決,這樣印象深刻,漸漸總結經驗,提高編程可復用性。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM