Python 设计自己的函数

Python 设计自己的函数,到了这里,我们应该可以十分有自信地设计一个符合自己项目需求的函数了,我们将上面各种所有知识进行整合,来设计一个简易的敏感词过滤器,不过在这之前,先来认识一个新的函数一一open

这个函数使用起来很简单,只需要传入两个参数就可以正常运转了:文件的完整路径和名称,打开的方式。

先在桌面上创建一个名为 text.txt 的文件。Windows 用户在桌面点击右键唤出菜单创建即可,Mac 用户则打开 Pages 创建文件后点击导出格式选择 txt 格式即可。现在我们使用 open 函数打开它:

open('/Users/Hou/Desktop/text.txt')

如果是 Windows 用户,应该像这样写你的路径:

open('C://Users/Hou/Desktop/')

如果你照着代码敲入的话其实这时候文件应该已经是打开的了,但是……貌似我们看不出来,所以,我们再认识一个新的方法一一write 。在第一章我们已经提到过如何使用方法(如果你现在困惑函数和方法到底是什么关系的话,为了顺利地往后进行,我可以告诉你方法就是函数的一种,只不过在不同的位置而已,使用原理和函数非常相似),在这里我们就照抄第三章的 replace 用法来学着使用 write 方法:

file = open('/Users/Hou/Desktop/text.txt','w')
file.write('Hello World')

写完后我们运行程序看看效果:
Python 设计自己的函数

掌握了 open 与 write 的基本用法之后,我们就可以开始着手设计函数了,需求是这样的:传入参数 name 与 msg 就可以在桌面写入文件名称和内容的函数text_create,并且如果当桌面上没有这个可以写入的文件时,就要创建一个之后再写入。现在我们开搞吧!

def text_create(name, msg):   
    desktop_path = '/Users/Hou/Desktop/'    
    full_path = desktop_path + name + '.txt' 
    file = open(full_path,'w')             
    file.write(msg) 
    file.close() 
    print('Done')
text_create('hello','hello world') # 调用函数

我们来逐行解释这段代码。

  • 第一行:定义函数的名称和参数;
  • 第二行:我们在最开始知道,open 函数要打开一个完整的路径,所以首先是桌面路径;
  • 第三行:我们给文件起什么名字,就是要传入的参数加上桌面路径再加上后缀就是完整的文件路径了;
  • 第四行:打开文件,’w’参数代表作为写入模式,意思是:如果没有就在该路径创建一个有该名称文本,有则追加覆盖文本内容;
  • 第五行:写入传入的参数 msg,即内容;
  • 第六行:关闭文本。

这样一来敏感词过滤器的第一部分我们就完成了。顺带一提,这个函数就是我们在前面提及到的并不需要 return 也能发挥作用的函数,最后的 print 仅仅是为了表明上面的所有语句均已执行,一个提示而已。接下来我们实现第二部分,敏感词过滤,需求是这样的:定义一个为函数 text_filter 的函数,传入参数 word,cencored_word 和 changed_word实现过滤,敏感词 cencored_word默认为‘lame’,替换词 changed_word 默认为‘Awesome’。现在继续:

def text_filter(word,censored_word = 'lame',changed_word = 'Awesome'):
    return word.replace(censored_word, changed_word)
text_filter('Python is lame!')     # 调用函数

这个函数就简单的多了,第一行我们按照设定默认参数的方式来定义函数,第二行直接返回使用 replace 处理后的结果。现在两个函数均已完成,本着低风险的原则,你可以尝试调用一下函数看看返回结果。

现在我们试着解决一个更复杂的问题,把两个函数进行合并:创建一个名为 text_censored_create 的函数,功能是在桌面上创建一个文本,可以在其中输入文字, 但是如果信息中含有敏感词的话将会被默认过滤后写入文件。其中文本的文件名参数为 name,信息参数为 msg,你可以先试着自己写一下,写完了再对照看下:

def censored_text_create(name, msg):
    clean_msg = text_filter(msg)
    text_create(name,clean_msg)
censored_text_create('Try','lame!lame!lame!') # 调用函数

我们使用第一个函数,将传入的 msg 进行过滤后储存在名为 clean_msg 的变量中,再将传入的 name 文件名参数和过滤好的文本 clean_msg 作为参数传入函数 text_create 中,结果我们会得到过滤后的文本。

完成之后,你就会得到一个文本过滤器了!

本章只是借助数学阐明了函数的运作方式而已,但是如果你确实需要解决许多数学上的问题,可以参考以下表格,至于怎么用,多尝试就知道了。一定要敢于尝试,反正电脑也不会因为你的一行代码爆炸。
假设 a=10, b=20,则运算示例如下:
Python 设计自己的函数

赞(2)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

最新文章