《Python從入門到實踐》 課後習題第十一章

2021-10-07 07:33:25 字數 2698 閱讀 7301

11-1 城市和國家 :編寫乙個函式,它接受兩個形參:乙個城市名和乙個國家名。這個函式返回乙個格式為city, country 的字串,如santiago, chile 。將 這個函式儲存在乙個名為city_functions.py的模組中。

建立乙個名為test_cities.py的程式,對剛編寫的函式進行測試(別忘了,你需要匯入模組unittest 以及要測試的函式)。編寫乙個名為test_city_country() 的 方法,核實使用類似於'santiago' 和'chile' 這樣的值來呼叫前述函式時,得到的字串是正確的。執行test_cities.py ,確認測 試test_city_country() 通過了。

from  city_functions  import city_country

import unittest

class citytestcase(unittest.testcase):

def test_city_country(self):

city1 = city_country('santiago', 'chile')

self.assertequal(city1,'santiago, chile')

unittest.main()

11-2 人口數量 :修改前面的函式,使其包含第三個必不可少的形參population ,並返回乙個格式為city, country - population *** 的字串, 如santiago, chile - population 5000000 。執行test_cities.py,確認測試test_city_country() 未通過。 修改上述函式,將形參population 設定為可選的。再次執行test_cities.py,確認測試test_city_country() 又通過了。 再編寫乙個名為test_city_country_population() 的測試,核實可以使用類似於'santiago' 、'chile' 和'population=5000000' 這樣的值來呼叫 這個函式。再次執行test_cities.py,確認測試test_city_country_population() 通過了。

from  city_functions  import city_country2

import unittest

class testcity(unittest.testcase):

def test_city_country(self):

city2 = city_country2('santiago', 'chile')

self.assertequal(city2,'santiago, chile')

def test_city_country_population(self):

city3 = city_country2('santiago', 'chile', 'population=5000000')

self.assertequal(city3,'santiago, chile - population=5000000')

unittest.main()

11-3 雇員 :編寫乙個名為employee 的類,其方法__init__() 接受名、姓和年薪,並將它們都儲存在屬性中。編寫乙個名為give_raise() 的方法,它預設將 年薪增加5000美元,但也能夠接受其他的年薪增加量。

為employee 編寫乙個測試用例,其中包含兩個測試方法:test_give_default_raise() 和test_give_custom_raise() 。使用方法setup() ,以免在 每個測試方法中都建立新的雇員例項。執行這個測試用例,確認兩個測試都通過了。

class employee():

def __init__(self, first, last, salaryyear):

self.first = first

self.last = last

self.salaryyear = salaryyear

def give_raise(self,add = 5000):

self.salaryyear += add

return self.salaryyear

from employee import employee

import unittest

class testcase(unittest.testcase):

def setup(self):

self.defaultemploy = employee('ming', 'xiao', 1000)

self.ans1 = 9000

self.give_raise_ = employee('hua', 'xiao', 800)

self.ans2 = 10000

def test_give_default_raise(self):

self.assertequal(str(self.ans1), str(self.defaultemploy.give_raise(0)))

def test_give_custom_raise(self):

self.assertequal(self.ans2,self.give_raise_.give_raise(500))

unittest.main()

Python程式設計從入門到實踐課後題5 10參考

這題我也是看了之後一時間不知道如何解決,後來看到這位大哥的方法後才有點明白,特此寫下來給自己加油鼓勵 current users admin user 01 cangjie zero 01 zzz 建立乙個列表 new users admin user 01 zero 01 4444 fangyan...

Python 從入門到實踐 6 1 課後習題

6.1 人 使用乙個字典來儲存乙個熟人的資訊,包括名 姓 年齡和居住的城市。該字典應包含鍵first name last name age 和city。將儲存在該字典中的每項資訊都 列印出來。message print the information of str message first nam...

Python 從入門到實踐 8 6 課後習題

8.6 城市名 編寫乙個名為city country 的函式,它接受城市的名稱及其所屬的 國家。這個函式應返回乙個格式類似於下面這樣的字串 defcity country city,country full city country city country returnfull city coun...