小甲鱼python课后答案40讲_小甲鱼Python 第30讲课后习题看不懂

本帖最后由 keydnal_aaron 于 2018-1-18 14:17 编辑

这个测试的文本里面是英文字符串,如果环境不同,注意下文本内容的编码方式,我的编程环境是centos7+python3.6.4

from os import walk,getcwd

from os.path import join

def search_file():

'''

查找当前目录底下的所有文件!

return返回的结果为列表:‘/路径/文件.txt’

'''

file_list=[]

for each_dir_file in walk(getcwd()):

if each_dir_file[2] != []:

for each_file in each_dir_file[2]:

if each_file[-4:] == '.txt':

temppath=join(each_dir_file[0],each_file)

file_list.append(temppath)

return file_list

def chazhao(filename,zfc):

'''

传入两个参数,文件名,要查找字符串

查找匹配字符串的行

生成结果以字典形式返回

如果文件没有匹配字符串的行,返回空字典

:param filename:

:param zfc:

:return:

'''

count1 = 0

dict_line_weizhi = {}

file = open(filename)

for each_line in file:

count1 += 1

if zfc in each_line:

weizhi=[]

begin_zfc = each_line.find(zfc)

while begin_zfc != -1:

weizhi.append(begin_zfc)

begin_zfc = each_line.find(zfc, begin_zfc + 1)

dict_line_weizhi.setdefault(count1,weizhi)

else:

dict_line_weizhi={}

file.close()

return dict_line_weizhi

def zfc_line_weizhi(zfc,daying):

'''

接收用户输入需要查找的字符串zfc

接收用户输入是否确认查询daying

确认查询,返回查询结果

确认不查询,退出程序

:param zfc:

:param daying:

:return:

'''

if (daying == 'YES') or (daying == 'yes') or (daying == 'Yes'):

file_list = search_file()

for each_file in file_list:

result = chazhao(each_file, zfc)

if result != {}:

print('在文件' + '[' + each_file + ']' + "中找到关键字" + '[' + zfc + ']')

for each_key in result.keys():

print('关键字出现在第' + str(each_key) + '行,第' + str(result[each_key]) + '个位置!')

else:

print('退出查询!')

if __name__ =='__main__':

zfc = input('请将该代码放于待查找的文件夹内,请输入关键字:').strip()

daying = input('请问是否打印关键字' + zfc + '在文件中的具体位置(YES/NO):').strip()

zfc_line_weizhi(zfc,daying)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SM4密码算法(附源码)

SM4是我们自己国家的一个分组密码算法,是国家密码管理局于2012年发布的。网址戳→_→:http://www.cnnic.NET.cn/jscx/mixbz/sm4/具体的密码标准和算法官方有非常详尽的PDF文档以供查阅,戳→_→:http://218.241.108.63/wiki/images…

vim ctrlp_使用Ctrlp和Ctag使Vim更智能

vim ctrlpby _haochuan通过_haochuan 使用Ctrlp和Ctag使Vim更智能 (Make Your Vim Smarter Using Ctrlp and Ctags) I absolutely love Vim, and I use Vim for all my coding and writing from year to year. Although more are more people, especially for those are worki…

linux系统可以无显卡运行吗,Linux操作系统无显卡安装方式

显卡安装方法:操作步骤:1、SBC上装上显卡,并启动安装程序2、安装linux系统并选择相应的安装包(选择lilo启动加载程序)如果安装时以GRUB方式加载的,需要在Grub.conf中将有关图形的语句屏蔽掉。#splashimage(hd0,0)/grub/splash.xpm…

软件工程专业实习可以做什么_想要获得软件工程实习机会? 这里有一些想法可以帮助您...

软件工程专业实习可以做什么by Tatiana Doyle塔蒂亚娜道尔(Tatiana Doyle) 想要获得软件工程实习机会? 这里有一些想法可以帮助您。 (Looking to land a software engineering internship? Here are some thoughts to help you.) A note: this post is simply mea…

ubuntu 简单配置samba

关键字: ubuntu samba今天在家,闲着没事,就想学习一下samba 来实现windows xp 访问ubuntu 的文件夹(家里有两台pc),google了很多文章,但是很多都没有用,不过鸟哥的文章有很清楚的介绍&#xff0…

python3.8文档_python 3.8的新功能

演示和工具 添加了一个基准脚本,用于计时访问变量的各种方式: Tools/scripts/var_access_benchmark.py . (由Raymond Hettinger在 bpo-35884 ) 以下是自Python3.3以来性能改进的摘要: Python version 3.3 3.4 3.5 3.6 …

mysql数据库备份及还原

一、Mysql数据库备份指令格式: mysqldump -h主机名 -P端口 -u用户名 -p密码 (–database) 数据库名 > 文件名.sql 注:直接cmd执行该指令即可,不需要先mysql -u root -p链接数据库 1、备份MySQL数据库的命令mysqldump -hhostname -uuserna…

linux隐藏apache信息,Apache防盗链和隐藏版本信息-linux-centos运维

有需要服务器方面的需求和咨询,可以联系博主 QQ 7271895一、防盗链二、隐藏版本信息实验要求:三台虚拟机分别是:linux和两台windows虚拟机,linux虚拟机为服务器,Windows7-1为客户端,Windows7-2为盗链端。实…

查看oracle当前的连接数

SQL> select count(*) from v$session #当前的连接数SQL> Select count(*) from v$session where statusACTIVE #并发连接数SQL> select value from v$parameter where name processes --数据库允许的最大连接数SQL> show parameter processes #最大连接 SQL> …

led显示屏控制卡接线图解_Led显示屏出现花屏是什么原因

Led显示屏已经成为现在人们推广的一种形式了,很多地方都是离不开led显示屏的使用的。由于Led显示屏的五彩绚烂,也更加吸引人们的眼球。不过在使用过程中,也会遇到Led显示屏花屏的情况。那么,Led显示屏出现花屏是什么原因呢?下面伟…

【javascript】获取 格式化时间

function getDate() {var myDate new Date();var month myDate.getMonth() 1;var day myDate.getDate();month (month.toString().length 1) ? ("0" month) : month;day (day.toString().length 1) ? ("0" day) : day;var result myDate.getF…

深度强化学习和强化学习_深度强化学习:从哪里开始

深度强化学习和强化学习by Jannes Klaas简尼斯克拉斯(Jannes Klaas) 深度强化学习:从哪里开始 (Deep reinforcement learning: where to start) Last year, DeepMind’s AlphaGo beat Go world champion Lee Sedol 4–1. More than 200 million people watched as …

制作一个大风车加载条

一、前言 不想使用普通的那种转圈的加载条,所以找了一个大风车的图片,想要用旋转的大风车来表示加载中。   一般都会想着将大风车图片设置成ImageView组件,然后给这个组件添加一个旋转动画就可以了,但是我突然想到我是想写加载条…

Android OkHttp完全解析 是时候来了解OkHttp了

Android OkHttp完全解析 是时候来了解OkHttp了 标签: AndroidOkHttp2015-08-24 15:36 316254人阅读 评论(306) 收藏 举报分类:【android 进阶之路】(67) 版权声明:本文为博主原创文章,未经博主允许不得转载…

c盘users的用户名怎么改_做完这几个操作,我从C盘中清理了30G垃圾文件

信息技术土著,一个有营养的公众号有个存在学说,比说一个人的身体某部位,如果不痛,你很少感觉他是存在的,但是某一天,因为某种原因,它突然很痛了,然后你每时每刻都会感觉到它的存在了…

linux complete函数,Linux驱动中completion接口浅析(wait_for_complete例子,很好)

completion是一种轻量级的机制,它容许一个线程告诉另外一个线程工做已经完成。能够利用下面的宏静态建立completion: DECLARE_COMPLETION(my_completion); linux若是运行时建立completion,则必须采用如下方…

vue.js 全局应用js_如何在不到7分钟的时间内测试您的Vue.js应用

vue.js 全局应用jsby Mukul Khanna由Mukul Khanna 如何在不到7分钟的时间内测试您的Vue.js应用 (How you can test your Vue.js apps in less than seven minutes) Before we dive into the implementation, let’s get a few concepts cleared.在深入研究实现之前&#xff0c…

MongoDB在Linux下常用优化设置

MongoDB在Linux下常用优化设置以下是一些MongoDB推荐的常用优化设置。在生产环境下选取合适的参数值,例如预读值和默认文件描述符数目等,会对系统性能有很大的影响。1、关闭数据库文件的 atime禁止系统对文件的访问时间更新会有效提高文件读取的性能。这…

iOS常用第三方库大全,史上最全第三方库收集

下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写…

ipconfig没有显示ip_TCP/IP 协议修复网络问题

nternet 在 TCP/IP 协议上工作,如果 TCP/IP 协议堆栈在 Windows 或任何其他操作系统(例如 Linux 或 MacOS)中无法正常工作,则您的 Internet 连接会出现问题。解决 Internet 问题的最佳方法是重置 TCP/IP 堆栈设置。如何在 Windows 中重置 TCP/IP 堆栈&am…