本章主要讲了python程序的调试,当程序有BUG或异常的时候,我们如何调试代码找出问题点.其实在本章之前的章节我们做练习的时候都会遇到各种各样的错语和异常,最初当不知道程序哪里出错的情况下不可否认的都使用了print语句进行输出并调试代码.没错print也是调试代码的一种工具,直观简单,但也有缺点,就是调试好后要删除print语句,也是件麻烦事,于是就有了本章介绍的assert(断言),logging(日志)以及各种调试工具的出现. 首先来回顾一下python的异常. 一.python常见…
本章介介绍了shutil,zipfile模块的使用,我们先来认识一下这2个模块吧. 一.shutil模块 shutil模块主要用于对文件或文件夹进行处理,包括:复制,移动,改名和删除文件,在shutil模块中主要以下这么几个函数: 1.复制文件和文件夹 shutil模块提供了2个函数:shutil.copy()和shutil.copytree() shutil.copy的语法格式: copy(src, dst) 作用: 将src处的文件复制到dst路径中去,其中src,dst都是字符串形式的路径…
第8章实践项目之疯狂填词 创建一个一个疯狂填词(Mad Libs),程序,它将读入文本文件,并让用户在该文本文件中出现 ADJECTIVE,NOUN,VERB等单词的地方,加上他们自己的文本. 首先准备一个a.txt的文本文件 程序代码如下: #!/usr/bin/env python3.4 # coding:utf-8 # 8.9.2 import re f1 = open('a.txt','r') strf1 = f1.read() print("原文件内容为:") print(s…
#!/usr/bin/env python3.5 # coding:utf-8 # 5.6.1 # 好玩游戏的物品清单 # 给定一个字典,包含物品名称和数量,并打印出数量对应的物品 dict_stuff = {'rope':1,'torch':6,'gold coin':42,'dagger':1,'arrow':12} print("5.6.1参考答案") print('=' * 80) print("给定字典:",dict_stuff) print("…
1 #!/usr/bin/env python 2 # coding:utf-8 3 # write by mfyang 4 # collatz.py 5 # 从用户读入一个值,并判断这个值是不是一个int类型的整数,如果不是给出异常提示 6 # 如果这个值是偶数 那么让这个数//2 7 # 如果这个值是奇数 那么让这个数 ×3 + 1 8 # 通过不断调用函数的返回值 并打印这个返回值 直到这个返回值为1 9 10 num = raw_input("please input a number:…
#!/usr/bin/env python3.5 #coding:utf-8 import re # 7.18.1 # 强口令检测 # 写一个函数,使用正则表达式,确保传入的口令字符串是强口令 # 长度不少于8个字符,同时包含大小写,至少有1个数字 pw = input("请输入口令:") def checkpw(passwd): plen = len(passwd) print(plen) chpw1 = re.compile(r'.*[A-Z]+.*') chpw2 = re.co…
#!/usr/bin/env python3.5 2 #coding:utf-8 3 # 4 # 这个项目主要目的是字符串的处理,简单格式化输出 5 tableData = [['apples','oranges','cherries','banana'], 6 ['Alice','Bob','Carol','David'], 7 ['dogs','cats','moose','goose']] 8 # 要求输出如下: 9 # apples Alice dogs 10 # dranges Bob…
#!/usr/bin/env python3.5 # coding:utf-8 # 假定有一个列表,编写函数以一个列表值作为参数,返回一个字条串 # 该字符串包含所有表项,之间以逗号和空格分隔,并在最后一个值前插入 and # 要求函数能处理传递给它的任何列表 # spam = input('please input a list:') # 刚开始想从用户输入进行传递列表方式,但没成功 # 4.10.1 print("4.10.1 answer:") def chlist_str(sp…
前言 这一章分为两个部分,处理 CSV 格式的数据和处理 JSON 格式个数据. 处理 CSV 理解 csv csv 的每一行代表了电子表格中的每一行,每个逗号分开两个单元格csv 的内容全部为文本,因此具有简单的优势. csv 模块的应用 csv 模块为 python 自带模块, import csv 即可导入. csv 文件的导入 分两个步骤: 打开这个文件,得到一个 File 对象:exampleFIle = open('example.csv') 使用 csv 的方法 reader(),…
前言 这一章节的主要内容是: 处理时间类型的数据(使用python 的两个模块: time 和 datetime 来处理) 创建多个线程 (使用 threading 模块来创建多个线程) 进行多个进程(使用 subprocess 模块来启动其他应用程序) 谈谈 time 模块 time 模块有两个方法最有用,time.time() 和 time.sleep() 关于 time.time() 这个函数 Unix 纪元:1970年1月1日0点功能:time.time()的返回值是 Unix 纪元的那…