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中进行多线程编程:第二 ...
随机推荐
- pycharm项目添加.gitignore忽略.idea文件夹
本地项目结构: .gitignore文件中添加: at_alsv_pro/.idea/SearchImage.iml at_alsv_pro/.idea/misc.xml at_alsv_pro/.i ...
- mysql 如何减少InnoDB关闭时间
原文连接: https://www.percona.com/blog/2009/04/15/how-to-decrease-innodb-shutdown-times/ 有时,运行InnoDB的MyS ...
- Firefox 浏览器的长期支持版本(Firefox ESR)
http://ftp.mozilla.org/pub/firefox/releases/ Firefox 浏览器 下载地址 http://m.newsmth.net/article/Browsers ...
- C# Newtonsoft.Json解析json字符串处理(最清晰易懂的方法)
需求: 假设有如下json字符串: { ", "employees": [ { "firstName": "Bill", &quo ...
- C语言 运算符优先级
规律小结: 结合方向只有三个是从右往左,其余都是从左往右. 所有双目运算符中只有赋值运算符的结合方向是从右往左. 另外两个从右往左结合的运算符也很好记,因为它们很特殊:一个是单目运算符,一个是三目运算 ...
- 初进python世界之数据类型
文章来源: https://www.cnblogs.com/seagullunix/articles/7297946.html 基本运算符 常用数据类型: 字符串(Str) 数字(Digit) 列表( ...
- RSA 签名、验证、加密、解密帮助类
import java.io.IOException; import java.security.InvalidKeyException; import java.security.KeyFactor ...
- 集群服务器+定时任务(Quartz) 重复执行的问题
x StackExchange.Redis private readonly IDatabase _db; string key = string.Concat("{自己命名的Redis前缀 ...
- [LeetCode] 250. Count Univalue Subtrees 计算唯一值子树的个数
Given a binary tree, count the number of uni-value subtrees. A Uni-value subtree means all nodes of ...
- [LeetCode] 257. Binary Tree Paths 二叉树路径
Given a binary tree, return all root-to-leaf paths. For example, given the following binary tree: 1 ...