零基础学Python学习笔记四函

  以治疗白癜风为主 http://m.39.net/disease/a_9084864.html
结尾才是新的开端

22

函数的定义和常用操作

name.txt内容諸葛亮

關羽

劉備

曹操

孫權

關羽

張飛

呂布

周瑜

趙雲

龐統

司馬懿

黃忠

馬超

#读取人物名称f=open(name.txt,encoding=UTF-8)#encoding=UTF-8代表编码模式data=f.read()data0=data.split(

)print(data0)输出:

C:\Users\wongj\AppData\Local\Programs\Python\Python39\python.exeC:/Users/wongj/Desktop/零基础学Python/txt/guo.py[諸葛亮,關羽,劉備,曹操,孫權,關羽,張飛,呂布,周瑜,趙雲,龐統,司馬懿,黃忠,馬超]Processfinishedwithexitcode0

#读取兵器名称f2=open(weapon.txt,encoding=UTF-8)#data2=f2.read()i=1forlineinf2.readlines():ifi%2==1:print(line.strip(\n))i+=1

#读取全文f3=open(sanguo.txt,encoding=GB)#以什么样的字符编码进行打开print(f3.read().replace(\n,))#。replace()把换行符替换成空的值

涉及大量的重复语句块,以上语句句法优雅度不足。我们希望把重复的代码块提取出来,然后只执行一次,引入函数概念:

#定义一个函数,作用是读取人物名称deffunc(filename):#定义一个参数,filename表示将参数传入此函数中print(open(filename,encoding=UTF-8).read())func(name.txt)#filename变量会获得name.txt

注:每个函数实际上是可以获得多个参数的

继续以更简洁的语句对前面的程序语句进行改写:

importre#引入一个新的模块deffind_item(hero):#定义一个变量名为herowithopen(sanguo.txt,encoding=GB)asf:data=f.read().replace(\n,)name_num=re.findall(hero,data)#使用re.findall这个函数,第一个参数匹配主角名字符串,#第二个参数匹配完整的文章,将英雄名出现的次数返回给我们的变量print(主角%s出现%s次%(hero,len(name_num)))returnlen(name_num)#主程序,定义函数为此主程序服务)name_dict={}#定义一个元组withopen(name.txt,encoding=UTF=8)asf:forlineinf:names=line.split(

)forninnames:#print(n)#我们要做的事情不是输出,故注释掉name_num=find_item(n)#将主角的名字传到find_item()这个函数中,此函数返回主角出现的次数给name_numname_dict[n]=name_num#元组的key为主角的名字,value为主角出现的次数

输出:

C:\Users\wongj\AppData\Local\Programs\Python\Python39\python.exeC:/Users/wongj/Desktop/零基础学Python/timegeekbang.

  转载请注明原文网址:http://www.hualongdn.com/qcjz/113808.html
  • 上一篇文章:
  • 下一篇文章: 没有了