函数

函数能提高应用的模块性,和代码的重复利用率。定义一个函数比较简单,但是需要遵循以下几点规则:

  1. 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  2. 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  3. 函数内容以冒号起始,并且缩进。
  4. return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

定义函数格式

def 函数名(参数):
函数体

参数主要有以下4种类型:必需参数、关键字参数、默认参数、不定长参数

必传参数

必传参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。如果我们定义一个加法函数,需要我们传入2个参数,如果我们只传入一个参数,就会出现语法错误如下代码所示:

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

上面代码将输出如下内容:

Traceback (most recent call last):

File "F:/blogApiTest/test4.py", line 4, in

print(add(1))

TypeError: add() missing 1 required positional argument: 'b'

关键字参数

函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。如下代码所示:

def person(name, age):
print("名字: ", name)
print("年龄: ", age) # person
person(age=50, name="testDog")

我们必传参数的顺序是name、age,如果我们想要使用关键字参数,我们在调用person函数的时候,通过参数名赋值,改变参数传入顺序。

默认参数

调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值,如下代码所示:

def person(name, age=35):
print("名字: ", name)
print("年龄: ", age) # person
person(age=50, name="testDog")
print("------------------------")
person(name="testDog")

上面代码将输出如下内容:

名字: testDog

年龄: 50

名字: testDog

年龄: 35

可变参数

加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

可变参数格式

def 函数名(*参数):
函数体

我们现在有一个需求,定义一个加法函数,这个加法函数可以接收任意个参数然后进行相加,那么如何去实现呢?这里就要用到可变参数。如下代码所示:

def add(*numbers):
sum = 0
for n in numbers:
if type(n) == int or type(n) == float:
sum = sum + n
else:
n = 0
sum = sum + n
return sum print(add(1, 2, 'a'))

上面代码将输出如下内容:

3

上面代码比较简单,定义一个加法函数,参数类型是可变参数类型,我们已经知道可变参数格式是元组形式,所以我们读取元组中每一个数据进行相加,如果元组中数据不是数字,我们把数据替换为0。

欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

9. Python函数的更多相关文章

  1. python 函数之day3

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

  2. Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  3. Python函数讲解

    Python函数

  4. Python函数信息

    Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...

  5. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  6. Python开发【第四章】:Python函数剖析

    一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...

  7. Python函数解析

    对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...

  8. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

  9. Python函数1

    Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...

  10. python函数传参是传值还是传引用?

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

随机推荐

  1. ArcGIS Runtime SDK for .NET (Quartz Beta)之连接ArcGIS Portal

    1. 介绍 ArcGIS Portal作为ArcGIS平台的中枢,在ArcGIS体系中起着至关重要的地位.在ArcGIS Runtime的新架构Quartz中添加了连接ArcGIS Portal(或A ...

  2. Insmod模块加载过程分析

    一.背景 a) 在进行JZ2440的一个小demo开发的时候,使用自己编译的内核(3.4.2)及lcd模块进行加载时,insmod会提示加载失败因为内核版本不匹配(提示当前内核版本为空),并且显示模块 ...

  3. HTML-参考手册: HTML 拾色器

    ylbtech-HTML-参考手册: HTML 拾色器 1.返回顶部 1. HTML 拾色器 选取颜色:     或输入颜色值: OK 或使用 HTML5: 选择的颜色: 黑色文本 阴影 白色文本 阴 ...

  4. selenium自动化测试时,chrome 出现“Chrome 正受到自动测试软件的控制”的解决办法

    背景 使用selenium自动化测试的时候,启动浏览器出现'Chrome正在受到自动软件的控制'的问题,修改方法有两种. 一.在浏览器配置里加个参数,忽略掉这个警告提示语:disable_infoba ...

  5. vim 更改注释颜色

    在 ~/.vimrc 添加命令: highlight Comment ctermfg=green

  6. Python List reverse() 与list[::-1]

    reverse() https://www.runoob.com/python/att-list-reverse.html list[::-1] https://blog.csdn.net/usern ...

  7. python学习笔记:目录结构

    "项目目录结构"其实也是属于"可读性和可维护性"的范畴. 目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Sta ...

  8. java中传参的要点

    传参的是分为:值传递和引用传递,值传递不会改变值,传递的是这个值的副本(就是把这个值拿出来拷贝一份用拷贝的值):引用传递会改变值,传递的是这个值的“地址”: String是特殊的引用类型,用Strin ...

  9. Redis哨兵机制(sentinel)

    1.简介: 1.是什么: Redis-Sentinel是Redis官方推荐的高可用(HA)方案,当用Reids 做master-slave高可用方案时,假如master宕机了,redis本身(包括它的 ...

  10. shell 的正则表达式 grep

    以上例子的目的在于,正则表达式只能用grep -n 命令中才有作用.在ls中,他的意义是不同的,例如*符号. grep命令的解析 其中,几个特殊的正则表达式: [[:alpha:]] 代表 字母[[: ...