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

(一)

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

位置参数

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

 def right_triangle_area(a,b):
     return 1/2*a*b

 print(right_triangle_area(3,4))
 # 位置参数传递

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

关键词参数传递

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

 def right_triangle_area(a,b):
     return 1/2*a*b

 print(right_triangle_area(b=4,a=3))
 # 关键词参数传递

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

(二)

设计自己的函数

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

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

 def text_create(name,msg):
     # 创建文件,写入信息
     desktop_path = '/Users/duwangdan/Desktop/'
     # 桌面路径
     full_path = desktop_path + name + '.txt'
     # 桌面路径+文件名+文件后缀
     file = open(full_path,'w')
     # 'w'参数指写入
     file.write(msg)
     # 文件中写入信息
     file.close()
     # 写入后关闭文件

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

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

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

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

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

 def censored_text_create(name,msg):
     # 创建删除敏感词后的文本函数
     clean_msg = text_filter(msg)
     # 过滤掉msg中的敏感词
     text_create(name,clean_msg)
     # 传入name和clean_msg到text_create函数中

 censored_text_create('test','Math is Awesome!')
 # 调用函数

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

完整代码如下:

 def text_create(name,msg):
     desktop_path = '/Users/duwangdan/Desktop/'
     full_path = desktop_path + name + '.txt'
     file = open(full_path,'w')
     file.write(msg)
     file.close()

 def text_filter(word,censored_word='Awesome',change_word=''):
     return word.replace(censored_word,change_word)

 def censored_text_create(name,msg):
     clean_msg = text_filter(msg)
     text_create(name,clean_msg)

 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. Oralce Plsql 中文显示乱码问题无需修改注册表完美解决

    此方法在其它版系统也可以解决 win10-64 plsql oracle 11g绿色版客户端 错误现象: 因为oracle用的是绿色版,无法设置注册表,尝试以下方法. 解决方法: 1.在plsql中查 ...

  2. 简学Python第六章__class面向对象编程与异常处理

    Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群  群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性p ...

  3. “倔驴”一个h5小游戏的实现和思考(码易直播)——总结与整理

    3月23日晚上8点半(中国队火拼韩国的时候),做了一期直播分享.15年做的一个小游戏,把核心代码拿出来,现场讲写了一遍,结果后面翻车了,写错了两个地方,导致运行效果有点问题,直播边说话边写代码还真不一 ...

  4. pacejs进度条监控服务端数据加载是否完毕

    记得刚刚入职新公司的时候,公司在做app里面的h5页面.跟之前公司的流程不太一样.之前都是写完静态页面后通过ajax加载接口数据,这公司省事了,写完静态页面直接扔给服务端,他们来填数据,确实给前端省事 ...

  5. Linux学习之sudo命令

    在学习Linux用户管理时,我们不得不需要了解一个命令,那就是sudo.sudo的作用是切换身份,以其他身份来执行命令. 那么为什么在Linux系统中我们需要来切换身份呢?原因有以下几个方面 1.养成 ...

  6. TypeScript入门-接口

    ▓▓▓▓▓▓ 大致介绍 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约. ▓▓▓▓▓▓ 接口 例子: function printLabel(labelledO ...

  7. java iframe 嵌套,session失效重新登录页面嵌套问题

    将后台跳转改写成 PrintWriter out = response.getWriter(); out.println("<html>");    out.print ...

  8. iOS 开发遇到 调不起相机问题

    在iOS 开发中 使用html 中的input 标签调起工程里面的相机,手机无反应 1.先看看info.plist 加没加相机的权限,添加Privacy - Camera Usage Descript ...

  9. 使用 nvm 来管理nodejs版本 。

    最近需要升级一下node版本,所以使用nvm搞一搞. 1. 下载 nvm 在 github 下载非安装版本的nvm包https://github.com/coreybutler/nvm-windows ...

  10. select下拉二级联动

    function opt(){ var id = $("#ids").val(); $.ajax({   type: "POST",  url: "$ ...