解读python小练习
1.新建一个函数,判断是不是int 类型,并测试,不是抛出错误
def adder(x, y):
"""
Return x + y if they are both integers
"""
if not (isinstance(x, int) and isinstance(y, int)):
raise TypeError("Inputs must be integers")
return x + y
res = adder(4,5)
print(res)
2.
import unittest
from adder import adder
class Test(unittest.TestCase):
def test_adder_errors(self):
"Tests ensuring errors in data that cause TypeError raises."
self.assertRaises(TypeError, adder, "123", "456")
self.assertRaises(TypeError, adder, "123", 456)
self.assertRaises(TypeError, adder, "123", 456)
self.assertRaises(TypeError, adder, 1.23, 456)
def test_adder_successes(self):
"Tests ensuring that valid data passes."
self.assertTrue(adder(1, 2) == 3, "1 + 2 is not 3")
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.test_adder_errors', 'Test.test_adder_succusses']
unittest.main()
tip:
#理解if __name__ == "__main__"
def main():
print("we are in %s" % __name__ )
print(1)
if __name__ == "__main__": #这个功能还有一个用处:调试代码的时候,在”if __name__ == '__main__'“中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码能够正常运行!
main()
print(2)
3.
import sys
for n,arg in enumerate(sys.argv): #对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
print(n,":", arg)
# list = ["这","是","一个","测试"]
# for i in range(len(list)):
# print(i,list[i])
# list1 = ["这","是","一个","测试"]
# for index,item in enumerate(list1):
# print(index,item)
4.
def zip_errors(z):
"""
Validate z as either NNNN or NNNN-NNNN.
"""
l = len(z)
if l not in(5,10):
return "Zip codes should be 5 or 10 characters long"
if (not z[:5].isdigit() or
l == 10 and not z[6:].isdigit()):
return "Zip code contains non-numeric characters"
if l == 10 and z[5] != "-":
return "Ten-digit zips must have a dash between the two parts"
return
tip:
import unittest
def cal(a,b):
return a + b
class CalTest(unittest.TestCase):
def testA(self):
expected = 6
result = cal(2,4)
self.assertEqual(expected,result);
def testB(self):
expected = 0
result = cal(2,1)
self.assertEqual(expected,result)
if __name__ == '__main__':
unittest.main() #执行 unittest.main() ,该函数会负责运行测试,它会实例化所有TestCase的子类,并运行其中所有以test打头的方法。
#多个测试类
#coding=utf-8
import unittest
from test1 import CalTest1
from test2 import CalTest2
if __name__=='__main__':unittest.main()
解读python小练习的更多相关文章
- 不一样的角度 解读微信小程序
不一样的角度 解读微信小程序 七月在夏天· 2 天前 前段时间看完了雨果奖中短篇获奖小说<北京折叠>.很有意思的是,张小龙最近也要把应用折叠到微信里,这些应用被他称为:小程序. 含着金钥匙 ...
- 解读Python发送邮件
解读Python发送邮件 Python发送邮件需要smtplib和email两个模块.也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单.今天,就来好好学习一下使用Pyt ...
- Python小工具--删除svn文件
有的时候我们需要删除项目下的svn相关文件,但是SVN会在所有的目录下都创建隐藏文件.svn,手工一个个目录查找然后删除显然比较麻烦.所以这里提供了一个Python小工具用于批量删除svn的相关文件: ...
- 全面解读Python Web开发框架Django
全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...
- python小练习(自己瞎倒腾)
python小练习 在网上无意中看到一个问题,心血来潮写了写,觉得比较有意思,以后遇到这种有意思的小练习也记录下. #!/usr/bin/env python # -*- coding:utf-8 - ...
- python小练习之二
title: python小练习之二 tags: 新建,模板,小书匠 grammar_cjkRuby: true --- python小练习之二 需求:实现用户登录,用户名和密码保存到文件里,连续输入 ...
- Python小代码_2_格式化输出
Python小代码_2_格式化输出 name = input("name:") age = input("age:") job = input("jo ...
- Python小代码_1_九九乘法表
Python小代码_1_九九乘法表 max_num = 9 row = 1 while row <= max_num: col = 1 while col <= row: print(st ...
- python小练习---TCP服务器端
针对于上一篇分享python小练习---TCP客户端 http://www.cnblogs.com/zhaijiahui/p/6926197.html我继续按书中内容,向下进行这里需要强调一个事py3 ...
随机推荐
- javaweb 项目部署到tomcat
1.准备环境 1.安装 mysql 2.安装java 环境 3.使用idea打war包 点击 apply 生成war包 将war包传到tomcat的webapp目录下,进入tomcat安装目录,进入b ...
- python2.7入门---SMTP发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.python的smtplib提 ...
- Git 查看远程分支、本地分支、删除本地分支及远程分支
1. 删除本地分支: git branch -d branchName 2. 删除远程分支: // 方法一:将删除的本地分支推到远程(要删除的远程分支在本地有映射) git push origin : ...
- LeetCode:14. Longest Commen Prefix(Easy)
1. 原题链接 https://leetcode.com/problems/longest-common-prefix/description/ 2. 题目要求 给定一个字符串数组,让你求出该数组中所 ...
- shell eval命令使用
eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令. 该命令适用于那些一次扫描无法实现其功能的变量.该命令对变量进行两次扫描. 这些需要进行两次扫描的变量有时被称为复杂变量.不过这些变量本 ...
- windows下oracle 11g r2 安装过程与卸载详细图解
Oracle 11g安装 1.解压下载的包,然后进入包内,点击setup.exe开始安装 . 2.出现如下:一般把那个小对勾取消,点击下一步进行, 弹出下图这个后点‘是' 3.下图后,选择创建和配置数 ...
- JDBC剖析篇(1):java中的Class.forName()
一.Class.forName() 在Java中我们一般用下面这样的语句来连接数据库(以MySQL为例) Class.forName("com.mysql.jdbc.Driver" ...
- Anytime项目开发记录0
Anytime,中文名:我很忙. 开发者:孤独的猫咪神. 这个项目会持续更新,直到我决定不再维护这个APP. 2014年3月10日:近日有事,暂时断更.希望可以会尽快完事. 2014年3月27日:很抱 ...
- %matplotlib inline
整理摘自 https://zhidao.baidu.com/question/1387744870700677180.html %matplotlib inline是jupyter notebook里 ...
- static 关键字解析(转)
static关键字解析 Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面 ...