1. 程式人生 > >Python入門100個例項(20)——物件的例子

Python入門100個例項(20)——物件的例子

從本例項學到什麼

  1. 結合例子闡述物件是什麼
  2. 物件的方法的例子

背景和例子

假設我們要開發學生成績管理系統。這個軟體具有以下功能:
1. 記錄每個學生的語文、數學和英語成績。
2. 求學生的總成績。
3. 求學生的三門課平均成績。
4. 統計學生的及格門數。
5. 對所有學生的成績按總分從高到低排序。
6. 統計三門課都及格的總人數。

開發這個軟體的話,把學生個體編制為物件是好做法。下面我們來看看,學生物件有什麼。

學生物件

學生物件有多個屬性組成,如下圖所示。
物件是什麼
資料屬性有:
- 學號
- 姓名
- 性別
- 語文成績
- 數學成績
- 英語成績

方法屬性有:
- 求總分方法sum()
- 求平均分方法avg()
- 求及格門數方法pn()

為什麼會有這些方法屬性呢?這是因為,軟體的功能需求決定了求總分、求平均分和求及格門數是基礎操作。所謂基礎操作,就是實現軟體的各項功能的程式碼會反覆呼叫的操作。這些會被反覆呼叫的操作,應當構造為物件的方法。物件的方法是作用於物件資料屬性之上的函式。

有了學生物件的例子,我們可以這樣來回答物件是什麼。
問:物件是什麼?
答:在學生成績管理系統中,會用一個個物件來表示一個個學生。
問:物件有什麼?
答:學生物件有學號、姓名、性別、語文成績、數學成績和英語成績這些資料屬性,有求總分、求平均分等方法屬性。
問:物件怎麼儲存?
答:物件會佔據一片記憶體區域。每個屬性在其中佔據一部分儲存區域。

Python語言的物件

Python程式中,任何值都儲存為一個物件。每個物件有:

  • 一個ID
  • 一個型別
  • 一個值
  • 若干屬性

對於學生物件,全部資料屬性的組合可視為物件的值。

把一個值賦值給一個變數,實際上是使變數成為包含該值的物件的名字。

小結

本例項沒有提供例項程式,而是結合一個例子來闡述物件是什麼,物件的方法是什麼。
今後會講解如何寫程式碼定義學生類和生成學生物件。
要理解Python語言的物件概念。但不要急於求成,現階段沒吃透沒有關係,不耽誤讀程式和寫程式就行。等到你自己可以舉例說明物件這個概念的時候,你已經懂了。

相關推薦

Python入門100例項20——物件例子

從本例項學到什麼 結合例子闡述物件是什麼 物件的方法的例子 背景和例子 假設我們要開發學生成績管理系統。這個軟體具有以下功能: 1. 記錄每個學生的語文、數學和英語成績。 2. 求學生的總成績。 3. 求學生的三門課平均成績。 4. 統計學

Python入門100例項25——刪除列表元素

從本例項學到什麼 本例項講三種從列表中刪除元素的做法。 1. 用del語句刪除元素 2. 用列表物件的pop方法刪除元素 3. 用列表物件的remove方法刪除某個值 例項程式程式碼 #例3-2-2 刪除列表元素 # del語句刪除列表

Python入門100例項23——訪問列表元素

從本例項學到什麼 通過下標訪問列表元素。 列表元素下標從0開始。 可以用變數的地方,就可以用列表元素。 例項程式程式碼 #例3-1-2 訪問列表元素 #下標i對應第i+1個元素 bicycles = ['trek', 'cannondale',

Python入門100道習題1——求二次方程

題目描述 問題描述】 程式設計計算y=x2+3x-5。要求從鍵盤輸入x的值,輸出y的值。 【輸入形式】 輸入實數x的值 【輸出形式】 輸出y的值 【樣例輸入】 1 【樣例輸出】 -1 錯誤解法 x = input() y = x *

Python入門100道習題4——換散幣

題目描述 【問題描述】 將n元(n是100的倍數)換成用10元、5元、2元的組合(其中每一面值都可取0),一共有多少種組合?輸入n,輸出組合數。 【輸入形式】 輸入錢幣總額n 【輸出形式】 輸出組合數 【樣例輸入】 100 【樣例輸出】 66

Python入門100道習題8——矩陣乘法

題目描述 【問題描述】 編寫程式,完成3*4矩陣和4*3整數矩陣的乘法,輸出結果矩陣。 【輸入形式】 一行,供24個整數。以先行後列順序輸入第一個矩陣,而後輸入第二個矩陣。 【輸出形式】 先行後列順序輸出結果矩陣,每個元素的顯示寬度為8格,螢幕一行只

Python入門100道習題7——找對稱數

問題描述 【問題描述】已知10個四位數輸出所有對稱數及個數 n,例如1221、2332都是對稱數 【輸入形式】10個整數,以空格分隔開 【輸出形式】輸入的整數中的所有對稱數,對稱數個數 【樣例輸入】1221 2243 2332 1435 1236 562

Python3.7之100例項未完

打了一個月CTF,發覺自己的程式設計能力太弱。最近重新開始學Python,堅持每天寫幾個例項,順便記錄一下。 目錄 題目1 :三位數計算 題目2:獎金計算 題目3:完全平方數 題目4:一年中的第幾天 題目5:三數排序 題目6:斐波拉契數列

《selenium2 python 自動化測試實戰》20——Selenium工具介紹

命令 aic 插件 rhui 所有 key 框架 地址欄 uga (一)Selenium IDE Firefox的一個插件,有助於我們理解測試框架。在附加組件裏搜索下載,一般搜的結果裏前幾個都不是,得點那個查看更多才行,找到這個: 安裝以後瀏覽器工具欄會有

Python入門+進階筆記2——Python基本類型

python入門 [ ] ber 布爾 入門 十六進制 運算 轉義 基本 數字(number) Python3中有int(整型)、float(浮點型) 二進制:以0b開頭;八進制:以0o開頭;十六進制:以0x開頭。 bin:其他進制的數轉為二進制的數;int:其他進制的數

Python爬蟲框架Scrapy例項資料儲存到MongoDB

Python爬蟲框架Scrapy例項(三)資料儲存到MongoDB任務目標:爬取豆瓣電影top250,將資料儲存到MongoDB中。 items.py檔案複製程式碼# -*- coding: utf-8 -*-import scrapy class DoubanItem(scrapy.Item): # d

Python Scrapy 爬蟲框架例項

之前有介紹 scrapy 的相關知識,但是沒有介紹相關例項,在這裡做個小例,供大家參考學習。 注:後續不強調python 版本,預設即為python3.x。 爬取目標 這裡簡單找一個圖片網站,獲取圖片的先關資訊。 該網站網址: http://www.58pic.com/c/ 建立專案 終端命令列執

python資料結構與演算法20

⼆叉樹的遍歷樹的遍歷是樹的⼀種重要的運算。所謂遍歷是指對樹中所有結點的資訊的訪 問,即依次對樹中每個結點訪問⼀次且僅訪問⼀次,我們把這種對所有節點 的訪問稱為遍歷(traversal)。那麼樹的兩種重要的遍歷模式是深度優先遍 歷和⼴度優先遍歷,深度優先⼀般⽤遞迴,⼴度優先⼀般⽤佇列。⼀般情況下 能⽤遞迴實現的

Python學習初級程式設計例項

題目:有1、2、3、4四個數字,能組成多少個互不相同且無重複數字的三位數?都是多少? 程式分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去 掉不滿足條件的排列。 程式原始碼

SciKit-learn快速入門教程和例項

一,sklearn的常用屬性和功能 繼續上次對波士頓房價預測的討論,瞭解模型的屬性和功能。 #首先匯入庫,使用的是線性迴歸 from sklearn import datasets from sklearn.linear_model import LinearRegr

Python Numpy 100題實驗 pad()函式應用

題目描述:使用數字0將一個全為1的陣列包圍起來: 程式碼: In [74]: a = np.ones((5,5)) In [75]: a Out[75]: array([[1., 1., 1., 1., 1.], [1., 1., 1., 1.,

Python Numpy 100題實驗diag()函式等

建立5*5的陣列,並設定1,2,3,4在對角線的下方: 使用numpy.diag()可以很方便的求出這個陣列 函式結構 diag(v, k=0) 引數說明 v 傳入一個數組,如果是一維陣列,那麼就會以這個陣列為對角線元素建立一個對角矩陣,如果傳入的陣列多於一維

Python Numpy 100題實驗uniform(),bincount()函式等

本篇的主要內容有: numpy.random.uniform() numpy.bincount() numpy.nonzero() numpy.random.choice() numpy.put() 給定一個一位隨機陣列,找出離0.5最近的數字 距離最近的點

Python Numpy 100題實驗mean(),set_printoptions()函式等

這一部分的主要內容: numpy.mean() 排序的一些例子 numpy.set_printoptions() 對於隨機的3*3的二維陣列,減去陣列的每一行的平均值 a = np.random.randint(1, 10, (3,3)) print('Ar

Python Numpy 100題實驗:線性代數函式以及fromfunction函式等

本次的主要內容有: 對線性代數函式例如逆矩陣函式,特徵值以及特徵值向量函式等的應用 fromfunction()函式的使用 求解給定矩陣的逆矩陣並驗證 a = np.random.randint(1, 5, (3,3)) # 注意這樣的話要多試幾次,因為隨