#1.城市和国家:编写一个函数,它接受两个形参:一个城市名和一个国家名。
#这个函数返回一个格式为City,Country的字符串,如Santiago,Chile。将这个函数
#存储在一个名为city_function.py的模块中
#创建一个名为test_cities.py的程序,对编写的函数进行测试
#编写一个名为test_city_country()的方法核实得到的字符串正确 #city_function.py def city_country(city,country):
#国家和城市
country_city = city + " " + country
return country_city.title() #test_cities.py
from city_function import city_country print("\nEnter q to quit.")
while True:
#输入城市和国家
city = input("\nEnter a city: ")
if city == 'q':
break
country = input("\nEnter country of the city: ")
if country == 'q':
break get_msg = city_country(city,country)
print("The city and country: " + get_msg.title()) #unittest_test_city.py
import unittest
from city_function import city_country class CityTestCase(unittest.TestCase):
def test_city_country(self):
get_city_country_name = city_country("beijing","china")
self.assertEqual(get_city_country_name,"Beijing China") unittest.main() #2.人口数量:修改1中的函数,使其包含必不可少的形参population
#并返回一个格式City,Country - population xxx 的字符串 def city_country(city,country,population=''):
#国家和城市
country_city = city + ", " + country + " -- Population " + population
return country_city.title() ##测试模块
import unittest
from city_function import city_country class CityTestCase(unittest.TestCase):
def test_city_country(self):
get_city_country_name = city_country("beijing","china","")
self.assertEqual(get_city_country_name,"Beijing, China -- Population 5000") unittest.main()
#3.雇员:编写一个名为Employee的类,其方法__init__()接受名、姓和年薪
#并将它们存储在属性中。编写一个名为give_raise()的方法,它默认将年薪增加5000
#但也能够接受其他的年薪增量。编写一个测试用例,其中包含两个测试方法:
#test_give_default_raise()和test_give_custom_raise()
#使用setUp方法,以免在每个测试方法中都创建新的雇员实例,运行这个测试用例
#确认两个测试都通过 #employee.py
class Employee(): def __init__(self,first_name,last_name,salary):
self.first_name = first_name
self.last_name = last_name
self.salary = salary
self.raising = 5000 def give_raise(self):
return self.raising #test_employee.py
import unittest
from employee import Employee class TestEmployee(unittest.TestCase):
#针对Employee类的测试 def setUp(self):
self.employee_test = Employee('Ma','Naoke',5000) def test_give_default_raise(self):
#测试默认的工资
raising = self.employee_test.give_raise()
self.assertEqual(raising,5000) def test_give_custom_raise(self):
#测试年薪增量
self.employee_test.raising = 6000
raising = self.employee_test.give_raise()
self.assertEqual(raising,6000) unittest.main()

Python:从入门到实践--第十一章--测试代码--练习的更多相关文章

  1. Python 从入门到实践 试一试 参考代码

    这两天学习Python 看了python从入门到实践的书籍,里面有课后题“试一试” 然后就跟着写了,代码在以下地址,如果需要自取 https://files.cnblogs.com/files/fud ...

  2. Python:从入门到实践--第四章--列表操作--练习

    #1.想出至少三种你喜欢的水果,将其名称存储在一个列表中,再使用for循环将每种水果的名称都打印出来. #要求:(1)修改这个for循环,使其打印包含名称的句子,而不是仅仅是水果的名称.对于每种水果, ...

  3. Python:从入门到实践--第三章--列表简介--练习

    #1.将一些朋友的姓名存储在一个列表中,并将其命名为friends.依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来. #2.继续使用1中的列表,为每人打印一条消息,每条消息包含相同的问候语 ...

  4. Python:从入门到实践--第六章--字典--练习

    #1.人:使用一个字典来存储一个熟人的信息;包括姓,名,年龄和居住的城市.将字典中的每项信息都打印出来 friend = { 'last_name':'马', 'first_name':'脑壳', ' ...

  5. python 从入门到实践 第三章

    在第3章,你将学习如何在被称为列表的变量中存储信息集,以及如何通过遍历列表来操作其中的信息 写注释 # 代码越长 标识好代码的重要性 越来越重要要求习惯:在代码中编写清晰,简洁的注释开始研究更复杂的主 ...

  6. Python:从入门到实践--第五章--if语句--练习

    #1.编写一系列条件测试:将每个测试以及结果打印出来 car = '宝马' if car == "宝马": print("预测正确") print(car) e ...

  7. Python:从入门到实践--第七章--用户输入和while循环-练习

    #1.编写一个程序,询问用户要租赁什么样的汽车,并打印. car = input("What's kind of cars dou you want to rent?,sir:") ...

  8. MyBatis从入门到精通:第一章测试代码

    package tk.mybatis.simple.mapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.se ...

  9. #Python编程从入门到实践#第四章笔记

    #Python编程从入门到实践#第四章笔记   操作列表 ​​​1.遍历列表 使用for循环,遍历values列表 for value in values: print(value) 2.数字列表 使 ...

随机推荐

  1. Android studio报Error:(26, 13)-v7:27.错误的解决方法

    1.报错图片 2.上图我画了红圈很明显就提示报错方向就是项目文件:build.gradle 3.解决方法如下 添加此方法到项目构建.gradle文件中: repositories {    maven ...

  2. Archery:开源漏洞评估和管理工具

    Archery:开源漏洞评估和管理工具

  3. [Codeforces375E]Red and Black Tree

    Problem 给定一棵有边权的树.树上每个点是黑或白的.黑白点能两两交换. 求符合任意一个白点到最近黑点的距离小于等于x时,黑白点交换次数最少为多少. Solution 明显是一题树形DP.我们先跑 ...

  4. Python中对字符串的操作

    Python字符串的相关操作 1.字符串格式判断 s.isalnum() #所有字符都是数字或者字母 s.isalpha() #所有字符都是字母 s.isdigit() #所有字符都是数字 s.isl ...

  5. asp解码.net传参

    get传参时 asp默认使用gbk解码?了解的朋友指点下,谢谢 .net向asp传参时注意urlencode加密编码使用gb2312 附:任何语言的数据交互都要确保接收双方的编码一致

  6. 查看python内部模块命令,内置函数,查看python已经安装的模块命令

    查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list或者用 help('modules') 或者用 python -m  ...

  7. 其他知识点,API

    日期和Math 获取2017-06-10格式的日期 Date.now() //当前时间毫秒数 var dt=new Date() dt.getTime() //毫秒数 dt.getFullYear() ...

  8. java线程入门一

    线程优先级: 在JAVA线程中,通过一个int型变量priority来控制线程优先级,线程的有限机为1-10,默认为5,优先级高的线程获得的运行时间要高于优先级低的线程.但这只是一个提示,操作系统和J ...

  9. 开发工具IntelliJ IDEA的安装与操作

    开发工具IntelliJ IDEA的安装与操作 1.1 开发工具概述 IDEA是一个专门针对Java的集成开发工具(IDE),它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就 ...

  10. SQL语句:如何让字符串转化数字

    和前端联调的时候,突然出现一个状况,新增数据的时候,一直报系统错误,写下此文,留以后反复温习.菜鸟程序员一名~ 项目内容:新增产品信息 具体实现:1 获取基础信息,创建产品(调用接口传入的产品类型,如 ...