这是关于Python的第5篇文章,主要介绍下参数传递方式和如何设计自己的函数。

(一)

本篇主要介绍2种参数传递方式。

位置参数

调用函数时,根据函数定义的参数位置来传递参数。

  1. def right_triangle_area(a,b):
  2. return 1/2*a*b
  3.  
  4. print(right_triangle_area(3,4))
  5. # 位置参数传递

求直角三角形面积,a、b分别为两条直角边,这里调用函数时使用的是位置参数传递。在位置参数传递中,参数的顺序是不可改变的。

关键词参数传递

在调用函数时,通过“键=值”的形式加以指定。可以让函数更加清晰、容易使用,无需考虑参数顺序。

  1. def right_triangle_area(a,b):
  2. return 1/2*a*b
  3.  
  4. print(right_triangle_area(b=4,a=3))
  5. # 关键词参数传递

还有一些类型是默认参数和可变参数等,目前我暂时用不到,就不做详细分享,有兴趣的可以自行百度。

(二)

设计自己的函数

之前介绍了字符串的方法和如何创建函数,这里将前面的学到的内容整合起来,设计一个简易的敏感词过滤器。

1. 传入参数name(文件名)和msg(信息内容)就可以在桌面写入文件名称和内容的函数text_create,如果桌面没有这个可以写入的文件时,会创建一个再写入。

  1. def text_create(name,msg):
  2. # 创建文件,写入信息
  3. desktop_path = '/Users/duwangdan/Desktop/'
  4. # 桌面路径
  5. full_path = desktop_path + name + '.txt'
  6. # 桌面路径+文件名+文件后缀
  7. file = open(full_path,'w')
  8. # 'w'参数指写入
  9. file.write(msg)
  10. # 文件中写入信息
  11. file.close()
  12. # 写入后关闭文件

在上一篇《产品经理学Python:学会创建并调用函数》中提到,定义函数后需要return返回结果。在Python中,return是可选项,没有return也可以直接定义函数并顺利调用,当不写时,代表返回值是‘None’。

这时敏感词过滤器的第一部分已完成。

2. 定义一个名为text_filter的函数,传入参数word,cencored_word(敏感词)和changed_word(替换词),cencored_word默认给定‘Awesome’,用changed_word默认空值来替代,实现敏感词过滤。

  1. def text_filter(word,censored_word='Awesome',change_word=''):
  2. # 文本过滤函数
  3. return word.replace(censored_word,change_word)
  4. # 用replace()方法替换敏感词

3. 定义一个名为censored_text_create的函数,传入参数name(文件名),msg(信息),使用第2个函数text_filter,将传入的msg过滤后储存在clean_msg中,再将传入的name和过滤好的clean_msg作为参数传入text_create函数中,调用censored_text_create函数,可以得到过滤后的文本。

  1. def censored_text_create(name,msg):
  2. # 创建删除敏感词后的文本函数
  3. clean_msg = text_filter(msg)
  4. # 过滤掉msg中的敏感词
  5. text_create(name,clean_msg)
  6. # 传入name和clean_msg到text_create函数中
  7.  
  8. censored_text_create('test','Math is Awesome!')
  9. # 调用函数

完成以上三步后,我们可以得到自己设计的文本过滤器了。

完整代码如下:

  1. def text_create(name,msg):
  2. desktop_path = '/Users/duwangdan/Desktop/'
  3. full_path = desktop_path + name + '.txt'
  4. file = open(full_path,'w')
  5. file.write(msg)
  6. file.close()
  7.  
  8. def text_filter(word,censored_word='Awesome',change_word=''):
  9. return word.replace(censored_word,change_word)
  10.  
  11. def censored_text_create(name,msg):
  12. clean_msg = text_filter(msg)
  13. text_create(name,clean_msg)
  14.  
  15. censored_text_create('test','Math is Awesome!')

操作环境:Python版本,3.6;PyCharm版本,2016.2;电脑:Mac

-----   End   -----

作者:杜王丹,微信公众号:杜王丹,互联网产品经理。

产品经理学Python:参数传递方式的更多相关文章

  1. 产品经理学Python:逻辑判断与运算符

    这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...

  2. 产品经理学Python:条件控制

    条件控制其实就是if...else...(如果...条件是成立的,就做...:反之,就做...)的使用,其基本结构是: 具体看下面这个例子: def account_login(): # 定义函数 p ...

  3. 产品经理学Python:for循环、while循环

    Python中有两种循环,分别为:for循环和while循环. 1. for循环 for循环可以用来遍历某一对象(遍历:通俗点说,就是把这个循环中的第一个元素到最后一个元素依次访问一次).for循环的 ...

  4. python参数传递方式

    原文地址:http://www.cnblogs.com/zhaopengcheng/p/5492183.html python中一切皆对象,函数中参数传递的是对象的引用. 1在函数中改变变量指向的对象 ...

  5. Python入门:参数传递方式

    这是关于Python的第5篇文章,主要介绍下参数传递方式和如何设计自己的函数. (一) 本篇主要介绍2种参数传递方式. 位置参数 调用函数时,根据函数定义的参数位置来传递参数. def right_t ...

  6. Python 关于Python函数参数传递方式的一点探索

    关于Python函数参数传递方式的一点探索 by:授客 QQ:1033553122 实践代码 #!/usr/bin/env python # -*- coding:utf-8 -*- __author ...

  7. python函数调用时参数传递方式

    python函数调用时参数传递方式 C/C++参数传递方式 对于C程序员来说,我们都知道C在函数调用时,采用的是值传递,即形参和实参分配不同的内存地址,在调用时将实参的值传给实参,在这种情况下,在函数 ...

  8. 【整理】--C++三种参数传递方式

    在C++中,共有三种参数传递方式: 按值传递(pass by value) 地址传递(pass by pointer) 引用传递(pass by reference) (1)按值传递的过程为:首先计算 ...

  9. 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解

    概述:  ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.调用API过程中参数的传递是必须的,本节就来谈谈 ...

随机推荐

  1. JQuery和原生JS跨域加载JSON数据或HTML。

    前提:有时候需要在网页上,加载另一个网站上的数据.或者加载另一个网站上的一个页面.Js的Ajax请求不具备跨域功能,可以使用JQuery来实现. 网页端JS代码: $(function () { $. ...

  2. flex中创建弹出窗口,并传值

    在flex页面中首先创建一个弹出窗口,代码如下: <?xml version="1.0" encoding="utf-8"?> <s:Titl ...

  3. MyBatis快速入门(1):搭建环境和单表映射

    一.MyBatis简介    一说起对象关系映射框架,大家第一时间想到的肯定是Hibernate.Hibernate作为一个著名的框架,功能十分强大.我们只需要配置好实体类和数据表之间的关系,Hibe ...

  4. PHP获得文件创建、修改、访问时间 filectime() filemtime() fileatime()

    转载博客 零度_PHP的博客   http://blog.sina.com.cn/s/blog_8edc37a801016hk1.html PHP获得文件创建.修改.访问时间 PHP filectim ...

  5. 老李分享:android手机测试之适配(1)

    Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...

  6. js实现多行图片点击(自动)左右无缝轮播特效

    /*效果图*/ HTML:    <div class="scroll">       <div class="picbox">     ...

  7. Android通过AOP实现防止按钮连续点击

    防止连续点击的实现方式有很多种,比如,在所有的onclick里面加上防多次点击的代码,或者定义一个新的OnClickListener,在里面加上防多次点击的代码,然后项目中的所有OnClickList ...

  8. 《Python基础教程》第1章读书笔记

    # -*- coding:utf-8 -*- x = "hello " y = "world" print x+y print "hello &quo ...

  9. 用java写的一个简易记事本

    import java.awt.*; import java.awt.event.*; import java.io.*; public class NoteDemo { private Frame ...

  10. linux_cmd_list_0

    一.文件 touch file # 创建空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2unix # windows文本转linux文本 unix2dos ...