python(函数封装)
一:Python 自定义函数
函数示意图如下:

1.使用函数的好处:
- 代码重用
- 保持一致性,易维护
- 可扩展性
2.函数定义
- 函数定义的简单规则:
- 函数代码块以def关键词开头
- 后接函数标识符名称和圆括号(),名称不能用纯数字或值python保留字符定义
- 任何传入参数和自变量必须放在圆括号中间函数内容以冒号起始,并且缩进若有返回值
- 函数通常使用三个单引号 '''...''' 来注释说明函数;函数体内容不可为空,可用 pass 来表示空语句
- 语法如下
- 函数名称定义的要求:
- 不要以纯数字命名
- 不要以python中保留字符(关键字)来命名
- 不要以文件名命名
- 不能出现特殊字符
- 要简短且见名知义
def 函数名(): 函数体
3.return 返回语句
- 每个函数都有一个 return 返回值,如果没定义则返回 None
- 函数中只要执行到 return 语句,函数就自动结束
- 可以写多个 return 语句但是第二个及之后的 return 语句不会被执行
- 可以通过return x,y,z形式返回多个值
def num(a,b): c = int(a) + int(b) return a,b,c
4.参数:
- 形参,写在函数声明的位置的变量量叫形参
- 实参,在函数调⽤的时候给函数传递的值. 叫实参
- 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值.
- 传参,给函数传递信息的时候将实际参数交给形式参数的过程被称为传参
5.参数的分类:
- 位置参数
def add(a,b): #括号内为形参 return a+b print (add(2,3)) #括号内为实参 def jian(a,b): return a-b def cheng(a,b): return a*b def chu(a,b): return a/b #求出给定区间的偶数和 def sums(x,y): a = [] for i in range(x,y+1): if i % 2 == 0: a.append(i) print (sum(a))示例如下:
#统计出字符串中某个字母有多少个 def counts(s,x): print (s.count(x)) #分数评级方法,90分以上:A,70分以上:B,60分以上:C,其他:Ddef PG(score): if score > 90: print ("A") elif score > 70: print ("B") elif score > 60: print ("C") else: print ("D")#封装一个功能,实现统计文件内容行数 def count_line(filepath): with open(filepath,"r") as data: print (len(data.readlines()))#coding=utf-8 """ 封装登录和注册方法进行登录注册要求如下: 先定义一个字典来存放用户名,账号和密码如dic = {'admin': '123456', 'xfs': '234567'} 要求如下: 1、从字典中获取用户完成登入,登入时判断用户是否存在,存在直接登入 2、如果输入的登入用户判断不存在字典,则调用注册方法,完成该用户的注册,注册成功后写入字典 """ dic = {'} def register(): user = input("输入账号:") A = True while A: pwd = input("输入密码:") repwd = input("请确认密码:") if repwd == pwd: dic.setdefault(user,pwd) A = False else: print ("两次密码不一致!") def login(): user = input("请输入账号:") if user in dic.keys(): for i in range(3): pwd = input("请输入密码:") if pwd == dic.get(user): print ("登录成功") break else: print ("密码错误") else: print ("账号不存在,请注册!") register() login()#coding=utf-8 #封装一个方法,实现人民币和美元汇率转换 def Change(a): if a[:3] == "¥": return ("%.4f" % (float(a[3:])/6.78)) elif a[:1] == "$": return ("%.4f" % (float(a[1:])*6.78)) else: return "输入有误!"
- 默认参数
def abc(x,y=5): print x + y abc(1) abc(1,2) - 可变长参数
def abc(x,*y): print x,y abc(1,2) abc(1,2,3,4,5,6) - 关键字参数
#coding=utf-8 stu = {"name":"zhangsan","age":20} def abc(x,**y): return x,y #传参方式如下 print (abc(1,**stu)) print (abc(1,name="zhangsan",age=20)) print (abc(1,**{"name":"zhangsan","age":20}))
6.局部变量和全局变量
- 局部变量是在函数内部定义的变量,只能在函数内部使用,函数执行结束后,函数内部的局部变量,会被系统回收不同的函数,不同函数可以定义相同的名字的局部变量,但是各用各的不会产生影响。
- 全局变量是在函数外部定义的变量,(没有定义在某一个函数内),所有函数内部都可以使用这个变量。
python(函数封装)的更多相关文章
- Appium python自动化测试系列之滑动函数封装实战(八)
8.1 什么是函数的封装 教科书上函数的封装太官方,我们这里暂且将函数的封装就是为了偷懒把一些有共性的功能或者一些经常用的功能以及模块放在一起,方便我们以后再其他地方调用.这个只是个人的理解所以大家懂 ...
- 初识代码封装工具SWIG(回调Python函数)
这不是我最早使用swig了,之前在写Kynetix的时候就使用了swig为python封装了C语言写的扩展模块.但是当时我对C++还不是很了解,对其中的一些概念也只是拿来直接用,没有理解到底是什么,为 ...
- python requests函数封装方法
python requests函数封装方法 上代码 import requests import json """ 封装request请求, 1.post:my_pos ...
- python 函数之day3
一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...
- Python函数讲解
Python函数
- Day03 - Python 函数
1. 函数简介 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print():也可以自己创建函数,这 ...
- Python 函数基础、有序集合、文件操作(三)
一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...
- Python 函数之路
---恢复内容开始--- python函数的定义 def add(): a = 1 b = 2 c == a + b print(c) 函数就是把一段实现某一个功能的代放进一个封装的方法名里,这个方法 ...
- Python函数篇:装饰器
装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理. ...
- Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例
由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二 ...
随机推荐
- Android - Button(按钮)的响应点击事件的4种写法
Button控件setOnclickListener(View.OnClickListener listener)来接收一个点击事件的监听器 自定义一个点击事件监听器类让其实现View.OnClick ...
- Mybatis源码研究7:缓存的设计和实现
Mybatis源码研究7:缓存的设计和实现 2014年11月19日 21:02:14 酷酷的糖先森 阅读数:1020 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...
- python开发--列表当全局变量来使用
python中,申明全局变量的时候,一般该变量类型基本上是:字符串或数字: 比较少用“列表”当做变量, 当有作用域限制的情况下,想要外部调用内部作用域的“列表”变量时,可以用这种方式,外部申明一个空列 ...
- (转)matplotlib实战
原文:https://www.cnblogs.com/ws0751/p/8361330.html https://www.cnblogs.com/ws0751/p/8313017.html---mat ...
- Angularjs Select获取数组下标
一.定义资源 //资源类型 $scope.status=['项目测试','开发工具','安装包','工作计划','测试项目','我的游戏','我的音乐','博客首页图片']; 二.没错直接用 {{$ ...
- java获取ubuntu某个目录下的所有文件信息
java获取ubuntu某个目录下的所有文件信息 public List<VCFile> getAllFiles(String basicDirName) { List<VCFile ...
- LayaIDE 报typescript编译版本不一致的错
LayaIDE 报typescript编译版本不一致的错 文件 -> 首选项->用户设置那里修改下 settings.json // 将设置放入此文件中以覆盖默认设置 { "ty ...
- Bladex使用代码生成器操作步骤
一.从私服上下载BladeX和Saber 二.运行BladeX所有服务 三.运行Saber 四.数据库创建自己需要使用的表(建议表名和字段名为:bldex_xxxx,xxx_xxxx,不要使用驼峰命名 ...
- 移动端播放直播流(video.js 播放 m3u8 流)
流媒体服务器: wowza 流媒体格式: m3u8 播放端:移动端网页(Android.IOS) 播放工具: video.js 代码如下: <!DOCTYPE html> <html ...
- mysql 5.7 sql_mode设置 坑
原文地址:https://blog.csdn.net/u012259256/article/details/56482218 1.查看sql_mode select @@sql_mode查询出来的值为 ...