编程极简入门(python)-06-方法
2017-02-28 20:41
281 查看
前言
本节继续介绍另外一个核心概念–方法学完之后,你可以将程序中重复的代码打包(封装)成方法,大大减少代码的数量
一 .计算公司员工的公积金(包含子公司)
要求 计算一家企业所有员工的公积金.大型企业在北京,天津都有分公司,个人所交的公积金按照所在子公司的所在城市.
北京:12% ,天津11%
员工名单(为了简化,我们只选取2位员工)
员工 | 工资 | 子公司 |
---|---|---|
张三 | 10000 | 北京分公司 |
李四 | 10000 | 天津分公司 |
如果我们参考<<条件判断>>最后的例子,就能马上把代码写出来.
# -*- coding:utf-8 -*- # 计算第1个员工的公积金 staffName = u'张三' money = 10000 #工资 city = 'beijing' #城市 taxRate = 0 #税率 tax= 0 #税金 if city =='beijing': taxRate = 0.12 elif city =='tianjing': taxRate = 0.11 else: taxRate = 0.07 tax = money * taxRate print u'员工:', staffName ,u'城市:',city,u',税率:',taxRate,u',工资:',money,u',需要缴纳的公积金:',tax # 计算第2个员工的公积金 staffName = u'李四' money = 10000 #工资 city = 'tianjing' #城市 taxRate = 0 #税率 tax= 0 #税金 if city =='beijing': taxRate = 0.12 elif city =='tianjing': taxRate = 0.11 else: taxRate = 0.07 tax = money * taxRate print u'员工:', staffName ,u'城市:',city,u',税率:',taxRate,u',工资:',money,u',需要缴纳的公积金:',tax
代码问题
尽管上述代码可以正常运行,但却有一个比较严重的问题,就是只要新增一个员工,就要增加一段非常类似一段代码. 更严重的问题是,如果计算税金的逻辑一旦发生变化, 那么就要修改每个计算税金的地方.
二 . 方法的概念
“方法”(也叫”函数”)是编程语言中最重要的概念, 和数学中的”函数”概念非常相似 y=f(x) ,给定一个变量值x,返回 f(x).便于理解:
从使用者角度来看,可以把“方法”理解为一种“服务”。
方法的组成部分
1. 方法参数 (非必要,可多个参数)
2. 方法业务
3. 方法返回结果 (非必要)
def 方法名(参数1,参数2 ...): 方法业务 return 返回值
三 .优化后的实例
代码实现如果我们参考<<条件判断>>最后的例子,就能马上把代码写出来.
# -*- coding:utf-8 -*- # 定义计算公积金方法 ,接收三个参数 员工姓名,工资,城市 def countGjj(staffName,money,city): taxRate = 0 if city =='beijing': taxRate = 0.12 elif city =='tianjing': taxRate = 0.11 else: taxRate = 0.07 tax = money * taxRate print u'员工:', staffName ,u'城市:',city,u',税率:',taxRate,u',工资:',money,u',需要缴纳的公积金:',tax return tax # 变量方式接受参数 staffName = u'张三' money = 10000 #工资 city = 'beijing' #城市 countGjj(staffName,money,city) # 值方式 接受参数 countGjj(u'李四',10000,'tianjing') # 返回值 tax = countGjj(u'王五',10000,'shanghai') print u'方法返回值, 税率:' , tax
代码输出
员工: 张三 城市: beijing ,税率: 0.12 ,工资: 10000 ,需要缴纳的公积金: 1200.0
员工: 李四 城市: tianjing ,税率: 0.11 ,工资: 10000 ,需要缴纳的公积金: 1100.0
员工: 王五 城市: shanghai ,税率: 0.07 ,工资: 10000 ,需要缴纳的公积金: 700.0
方法返回值, 税率: 700.0
相关文章推荐
- 编程极简入门(python)-01-前言
- Python一天入门15:面向对象的编程2-类与对象的方法
- python socket编程入门(编写server实例)+send 与sendall的区别与使用方法
- 编程极简入门(python)-04-变量
- 编程极简入门(python)-03-第一个python程序
- 编程极简入门(python)-08-模块
- 编程极简入门(python)-05-条件判断
- 编程小白的第一本 python 入门书 学习笔记06 第七章 类与可口可乐
- Python入门1-编程基础和字符串
- 初学者编程入门:C语言指针使用方法
- Python网络编程-入门篇
- 【2013】实习收获2:python的网络编程--client端与server端入门(client端)
- [Python入门及进阶笔记]Python-魔术方法小结(方法运算符重载)
- [Python入门及进阶笔记]Python-魔术方法小结(方法运算符重载)
- Java网络编程从入门到精通 (9):使用isXxx方法判断地址类型
- Python一天入门14:面向对象的编程1-对象
- 简明 Python 教程 / 面向对象的编程 / 类与对象的方法
- Python入门的36个例子——13 Function(def)—— 使功能模块化的好方法
- 5种让你入门免费学习编程的方法
- 更灵活的定位内存地址的方法06 - 零基础入门学习汇编语言37