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,其他:D
def 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中进行多线程编程:第二 ...
随机推荐
- pandas filter数据筛选
https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&shareId=400000000398 ...
- 强化学习——如何提升样本效率 ( DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!)
强化学习 如何提升样本效率 参考文章: https://news.html5.qq.com/article?ch=901201&tabId=0&tagId=0&docI ...
- Spring cloud微服务安全实战-7-7自定义metrics监控指标(2)
Gauge用来显示单词一个数的 勾选,这里编程仪表盘 设置仪表盘的最大值.最小值 保存 直接保存 保存成功的提示 返回 这就是我们做的一个简单的仪表盘 这个不适合我们的counter,因为没有最大值 ...
- [LeetCode] 235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...
- VS2013+OpenCV3.4.2编译
一.准备工作: (1)在OpenCV官网下载3.4.2版本(注意选择Win pack),https://opencv.org/releases.html. (2)下载Contrib模块,https:/ ...
- 第I位是0/1
int a; scanf("%d",&a); ;i<;i++) { ;//从右往左第i位是x ,i==0,就是第一位 printf("%d ",x ...
- LeetCode 151. 翻转字符串里的单词(Reverse Words in a String)
151. 翻转字符串里的单词 151. Reverse Words in a String
- 2.Netty 与 NIO 之前世今生
2.Netty 与 NIO 之前世今生 本文围绕一下几点阐述: 1. NIO 的核心组件 Buffer.Selector.Channel. 2.何谓多路复用? 3.Netty 支持的功能与特性. ...
- hive学习(1)
什么是Hive Hive是基于Hadoop的一个数据仓库工具(E抽取T转换L加载),可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本质是:将HQL转化成MapReduce程序 Hive ...
- 栈习题(1)-对于任意的无符号的的十进制数m,写出将其转换为十六进制整数的算法(正确输出即可)
/*对于任意的无符号的的十进制数m,写出将其转换为十六进制整数的算法(正确输出即可)*/ /* 算法思想:利用辗转取余法,每次都将余数存入栈中,直到被除数等0,退出循环. 输出栈里的内容即可 */ v ...