函数是组织代码的非常有效的方式,有了函数,我们就可以编写大规模的项目。可以说,函数是组织代码的最小单元。

Python函数的定义

函数是代码封装的一种手段,函数中包含一段可以重复执行的代码,在需要用到这些代码时,只需要调用函数,就会运行函数中的代码。

python 函数这么定义:

def 函数名称(参数1, 参数2):
 函数体(要运行的代码)

比如一个很简单的函数定义:

def add(a, b):
return a + b

现在我们举个例子说明函数的作用。

print('打开高级车门')
print('开发动机')
print('安全带')
print('踩油门')
print('掌握方向')

如果要开很多次车,那么每次都需要敲相同的 5 行代码,这样会造成几个问题:

  • 很容易编写不同的代码,或者代码出现错误
  • 代码冗余,可读性不强
  • 不容易维护,当需要修改某个步骤时,要修改多处。

Python函数的调用

现在我们可以把上述代码封装在函数中,当需要运行这些代码时,调用函数就可以了,这样减少了很多复制粘贴或者手工编写多行代码的步骤,函数的名称也表明了代码的作用,当需要修改部分逻辑,只需要修改函数体就可以了。

def run_car():
    print('打开高级车门')
    print('发动发动机')
    print('系上安全带')
    print('踩油门')
    print('掌握方向')

run_car()
# 其他代码
run_car()

Python函数的返回值

return 表示当函数执行完之后,想让函数外面的程序得到函数执行的结果, return 的值可以任意的数据类型。

def add(a, b):
return a + b
result = add(3,4)

print(result)

  • 函数体当中的代码, 遇到 return 会终止运行。
  • 函数的返回结果可以是任意类型,包括 None
  • 当函数体当中没有 return ,默认返回 None

Python函数可以返回多个值, 只需要在多个值之间加上逗号,得到的是元组类型。

def add(a, b):
 return a, b

参数的四种类型

return 表示函数返回给外部的值,而参数表示函数从外部接收的值。在函数定义时候的参数叫做形式参数,它其实就是一个变量名称,在函数调用时候的参数叫做实际参数,相当于给变量赋值。

def get_coffee(suger):
    if suger > 100:
        return '甜咖啡'
    elif suger < 1:
        return '美式'
    else:
        return '莫名其妙的咖啡'

result = get_coffee(100)
print(result)

注意,形式参数的个数和实际参数的个数要一样,而且顺序要一致,这种方式叫做位置参数。(和领导吃饭做位置)如果形式参数和实际参数的个数不一致,会导致程序无法分别赋值:

def add(a, b):
    c = a + b - 1
    return c

add(5, 7, 8) # NO

关键字参数:在调用函数的时候,做一个关键字标记,以防传参错误,造成损失。主要是当参数很多的情况,你记不清顺序,关键字去标识数据的意思。

默认参数:在函数定义的时候,给某个变量直接赋值,成为默认值。 就是使用默认值直接赋值,在调用函数的时候,可以少传参数。关键字参数,默认参数也好,都必须放到位置参数的后面。

def add(a, b=0):
    c = a + b - 1
    return c

add(a=4, b=6)
add(3)

自动化测试场景:添加多个数据,运行多个用例

def write_case(number):
    for _ in range(number):
        username = input("请输入用户名:")
        passwd = input("请输入密码:")
        age = input("请输入年龄:")

        user = dict()
        user.update(username=username,
                    passwd=passwd,
                    age=age)
        yield user

def run(case):
    print(f"运行用例-用户名{case['username']}")

    cases = write_case(2)
    for case in cases:
        run(case)

Python自学笔记11-函数的定义和调用的更多相关文章

  1. Python自学笔记-filter()函数(来自廖雪峰的官网Python3)

    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内 ...

  2. Python学习笔记11—函数

    建立第一个函数 /usr/bin/env Python #coding:utf-8 def add_function(a,b): c = a+b print c if __name__==" ...

  3. Python自学笔记-lambda函数(来自廖雪峰的官网Python3)

    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 匿名函数 通过 ...

  4. Python自学笔记-sorted()函数(来自廖雪峰的官网Python3)

    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 排序算法 排序 ...

  5. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  6. JAVA自学笔记11

    JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...

  7. Python函数的定义与调用、返回值、参数

    一.函数是什么 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.比如print(),len()等.但你也可以自己创建函数,这被叫做用户自 ...

  8. 12_传智播客iOS视频教程_注释和函数的定义和调用

    OC的注释和C语言的注释一模一样.它也分单行注释和多行注释. OC程序里面当然可以定义一个函数.并且定义的方式方法和调用的方式方法和我们C语言是一模一样的.OC有什么好学的?一样还学个什么呢? 重点是 ...

  9. Kotlin基础(二)函数的定义与调用

    函数的定义与调用 一.预备知识:在Kotlin中创建集合 fun main(args: Array<String>) { //Kotlin中定义各自集合 val ,,,) val list ...

随机推荐

  1. C#项目中常见的目录和文件

    本文迁移自Panda666原博客,原发布时间:2021年4月17日. Bin 目录 bin是英文binary的缩写, 字面意思是二进制,意指用来存放编译后的结果.C#/VB编译器编译后的程序二进制文件 ...

  2. Ubuntu远程桌面助手(URDC)

    目前自动驾驶域控制器项目中使用了英伟达的Orin芯片+Ubuntu20.04系统.域控属于典型的Headless设备,开发调试时需要连接显示器(HDMI/DP).鼠标和键盘,或者使用NoMachine ...

  3. 2.C++标准库函数:getline函数 定界流输入截取函数 -windows编程

    引言:今天工作遇到了一个需要按行读取txt文件数据的需求,查询了一下getline()函数,发现这竟然是一个C++的标准库函数,而且设计的很好,特地做一下记录.getline本质是一个定界流输入截取函 ...

  4. nifi从入门到实战(保姆级教程)——环境篇

    背景: 公司领导决定将各种基础数据的导入从代码中分离出来,用Apache Nifi替换.使开发者们更关注在业务上,而不用关心基础的由来. Apache Nifi对于整个团队都是一个全新的工具,之前大家 ...

  5. XSS攻击(笔记)

    XSS攻击 XSS概述 XSS即跨站脚本攻击,(Cross-Site Scripting, CSS),但是为了与层叠样式表(Cascading Style Sheets, CSS)缩写区分开来,所以命 ...

  6. Linux文本三剑客-grep

    Global search REgular expression and Print out the line 全局搜索正则表达式并打印行 作用: 对标准输入的行进行分析,过滤指定的行. 模式: 格式 ...

  7. centos系统和Ubuntu系统命令区别以及常见操作

    目录 一.前言 二.系统环境 三.命令区别 3.1 使用习惯和命令区别 3.2 服务管理的区别 3.3 软件包信息区别 四.Ubuntu系统常见操作 4.1 Ubuntu系统apt和apt-get的区 ...

  8. pytorch 基础内容

    一些基础的操作: import torch as th a=th.rand(3,4) #随机数,维度为3,4的tensor b=th.rand(4)print(a)print(b) a+b tenso ...

  9. Ubuntu出现视频无法正常播放的问题

    原因是没有安装相关的解码包,参考这个方法: ubuntu下B站(bilibili)视频无法播放 一条命令解决 sudo apt install ubuntu-restricted-extras 要是有 ...

  10. java关键字的概念与特征和标识符的概念和规则

    什么是关键字 比如说邮箱地址 abc@qq.com  123abc@qq.com 这样的只要没有人占用都是和发布的 那么这样呢 hahah@enen@itcast.cn呢 @是电子邮箱当中有特殊含义的 ...