一: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(函数封装)的更多相关文章

  1. Appium python自动化测试系列之滑动函数封装实战(八)

    8.1 什么是函数的封装 教科书上函数的封装太官方,我们这里暂且将函数的封装就是为了偷懒把一些有共性的功能或者一些经常用的功能以及模块放在一起,方便我们以后再其他地方调用.这个只是个人的理解所以大家懂 ...

  2. 初识代码封装工具SWIG(回调Python函数)

    这不是我最早使用swig了,之前在写Kynetix的时候就使用了swig为python封装了C语言写的扩展模块.但是当时我对C++还不是很了解,对其中的一些概念也只是拿来直接用,没有理解到底是什么,为 ...

  3. python requests函数封装方法

    python  requests函数封装方法 上代码 import requests import json """ 封装request请求, 1.post:my_pos ...

  4. python 函数之day3

    一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...

  5. Python函数讲解

    Python函数

  6. Day03 - Python 函数

    1. 函数简介 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print():也可以自己创建函数,这 ...

  7. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  8. Python 函数之路

    ---恢复内容开始--- python函数的定义 def add(): a = 1 b = 2 c == a + b print(c) 函数就是把一段实现某一个功能的代放进一个封装的方法名里,这个方法 ...

  9. Python函数篇:装饰器

    装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理. ...

  10. Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例

    由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二 ...

随机推荐

  1. Linux下emacs如何安装

    ftp://ftp.gnu.org/gnu/emacs/ 下载对应版本编译安装 cd 自己想安装的目录 sudo wget ftp://ftp.gnu.org/gnu/emacs/emacs-24.4 ...

  2. IEnumerable是什么

    首先怎么认识一个对象 IE+number+able  IE数字 可能 从名字上看不出什么玩意,以至于很久都没人真正认识这个接口 先看官方的解释 IEnumerable Interface Expose ...

  3. EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码

    背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...

  4. [简短问答]C-Lodop中一些测试用的地址

    测试访问:访问http://localhost:8000欢迎页面试试进入欢迎页面http://localhost:8000,点欢迎页面的预览试试 查看下c-lodop启动界面,在设置里查看下当前启动的 ...

  5. jQuery fancy box 移除close "X" button

    version: fancybox 2.1.4 <div id="reloadPagePopup" class="div-fancy-box"> & ...

  6. [LeetCode] 110. Balanced Binary Tree 平衡二叉树

    Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...

  7. [LeetCode] 304. Range Sum Query 2D - Immutable 二维区域和检索 - 不可变

    Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper lef ...

  8. Kubernetes 使用 ingress 配置 https 集群(十五)

    目录 一.背景 1.1 需求 1.2 Ingress 1.3 环境介绍 二.安装部署 2.1.创建后端 Pod 应用 2.2 创建后端 Pod Service 2.3.创建 ingress 资源 2. ...

  9. Rufus软件

    Rufus软件(https://rufus.akeo.ie/)——制作启动盘必备,简易且开源.

  10. docker+k8s基础篇一

    Docker+K8s基础篇(一) docker的介绍 A:为什么是docker B:k8s介绍 docker的使用 A:docker的安装 B:docker的常用命令 C:docker容器的启动和操作 ...