小甲魚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.pswp.cn/news/394823.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394823.shtml
英文地址,請注明出處:http://en.pswp.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…