原文出处,如有侵权,请联系删除。

  • 用户自定义.py文件

   如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数,注意  abstest是文件名(不含.py扩展名)

  • 定义空函数 nop()

如果想定义一个什么事也不做的空函数,可以用pass语句:

def nop():
pass

pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

pass还可以用在其他语句里,比如:

if age >= 18:
pass

缺少了pass,代码运行就会有语法错误。

  • 用户自定义检验参数类型
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x
  • 函数返回多个数值
def fun1(x):
a=x**2
b=x**3
return a,b
a,b=fun1(4)
print(a,b)
  • 可变参数
def variableArg(*num):
sum=0
for n in num:
sum=sum+n**2
return sum print(variableArg(1,2,3,4))

可变参数

  定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变

  *nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

  

def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s

默认参数

  这样,当我们调用power(5)时,相当于调用power(5, 2)

  设置默认参数时,有几点要注意: 一是必选参数在前,默认参数在后,否则Python的解释器会报错

  当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

  • 可变参数

  

  

  • 实例之求解一元二次方程的根
import math
#输入三个参数,返回一元二次方程的解
def quadratic(a,b,c):
delt=math.pow(b,2)-4*a*c
delt1=math.sqrt(delt)
if delt<0:
print('该一元二次方程没有实根')
return None
elif delt==0:
print('该一元二次方程只有一个实根')
x1=x2=(-b/2*a)
return x1,x2
else:
print('该一元二次方程有两个实根')
x1=(-b+delt1)/(2*a)
x2=(-b-delt1)/(2*a)
return x1,x2
print('请输入一元二次方程的三个系数a,b,c:')
a=float(input('请输入a:'))
b=float(input('请输入b:'))
c=float(input('请输入c:'))
x1,x2=quadratic(a,b,c)
print('该一元二次方程的解析式为:{0}x^2+{1}x+{2}=0'.format(a,b,c))
print('该一元二次方程的解x1={0:.3f},x2={1:.3f}'.format(x1,x2))
  • 求一个list的最大值与最小值,以tuple形式返回

  

#迭代查找一个list(随机数生成一个list)的最大值与最小值,并返回一个tuple

import random

def getRandomList():
ranList=[]
for i in range(10):
ranList.append(random.choice(range(101)))
print('生成的随机list为',ranList)
return ranList
def find_min_max(ranList):
minNums=maxNums=ranList[0]
for x in ranList:
if x<minNums:
minNums=x
maxNums=max(ranList)
return (minNums,maxNums)
#dict={'max':maxNums,'min':minNums}
print(find_min_max(getRandomList()))

Python-函数小结的更多相关文章

  1. Python函数小结(1)--参数类型(*, ** 的区别), 闭包

    刚开始学习python,python相对于java确实要简洁易用得多.内存回收类似hotspot的可达性分析, 不可变对象也如同java得Integer类型,with函数类似新版本C++的特性,总体来 ...

  2. Python函数小结(2)-- 装饰器、 lambda

    本篇依然是一篇学习笔记,文章的结构首先讲装饰器,然后讲lambda表达式.装饰器内容较多,先简要介绍了装饰器语法,之后详细介绍理解和使用不带参数装饰器时应当注意到的一些细节,然后实现了一个简单的缓存装 ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

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

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

  5. python 函数的参数的几种类型

    定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...

  6. 9 - Python函数定义-位置参数-返回值

    目录 1 函数介绍 1.1 为什么要使用函数 1.2 Python中的函数 2 函数的基本使用 3 函数的参数 3.1 参数的默认值 3.2 可变参数 3.2.1 可变位置传参 3.2.2 可变关键字 ...

  7. Python函数中参数类型

    在学习Python函数的时候,函数本身的定义和调用并不是很复杂,但是函数的参数类型和用法的确有些复杂.在此做一个小结,加深理解. Python参数的定义 负责给函数提供一些必要的数据或信息,以保证函数 ...

  8. 第二章----python函数

    第一节:调用函数 1.函数是什么? 函数是组织好的,可以重复利用的. 2.为什么要用到函数? 提高应用的模块性,提高重复利用率.指的是:多个文件中可能都要用到该函数,直接拿来调用就行,不用在重复写一个 ...

  9. python函数基础学习

    函数的定义与调用: def 函数名(参数1,参数2): ‘’’函数注释’’’ print(‘函数体’) return 返回值 定  义:def关键字开关,空格之后接函数名和圆括号,最后冒号结尾 def ...

  10. python函数-------python2.7教程学习【廖雪峰版】(三)

    任务: 看完函数这一章    已完成 2017年6月8日16:23:491.函数的作用:写较少的代码实现较多的功能,可以多次被调用.2.可见,借助抽象,我们才能不关心底层的具体计算过程,而直接在更高的 ...

随机推荐

  1. LVS的DR模型配置

    LVS的DR模型配置 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 IP地址 角色 Srv ...

  2. Python json序列化

    Python内置的json模块提供了非常完善的对象到JSON格式的转换.废话不多说,我们先看看如何把Python对象变成一个JSON: d = dict(name='Kaven', age=17, s ...

  3. 浅谈CSS3 box-sizing 属性 有趣的盒模型

    盒模型的组成大家肯定都懂,由里向外content,padding,border,margin. 盒模型是有两种标准的,一个是标准模型,一个是IE模型. 从上面两图不难看出在标准模型中,盒模型的宽高只是 ...

  4. Odoo免费开源ERP销售收款的财务对账解决方案

    概述 ​前面文章介绍了佛山王朝家具的案例背景.佛山王朝家具公司在全国有30多家门店,三个生产工厂.王朝家具有六大痛点问题: 一.订单迫切需要实现电子化管理及在线签名 二.总部分单工作量大,供应链效率低 ...

  5. Android中对已安装应用的管理实现

    获取.管理手机中已安装的所有应用信息 1.创建应用的实体类AppInfo,属性有应用的名称.包名.图标.第一次安装时间和版本名称 public class AppInfo { private Stri ...

  6. Sentry快速开始并集成钉钉群机器人

    Sentry(直译为:哨兵)是一个开源错误跟踪服务,帮助开发人员实时监控和修复崩溃 Sentry本质上是一种帮助您实时监控和修复崩溃的服务 1.  安装客户端SDK 这里我们安装Java平台的SDK, ...

  7. sql语句 汉字转拼音首字母

    (1)------------------------------------------------------------------------------------------------- ...

  8. SqlServer中用SQL语句附加数据库及修改数据库逻辑文件名

    --查询数据库逻辑文件名 USE 数据库名 SELECT FILE_NAME(1) --查询数据库逻辑文件名(日志) USE 数据库名 SELECT FILE_NAME(2) --附加数据库 sp_a ...

  9. Storm入门(八)Storm实战常见问题总结(持续更新)

    一.本地环境log级别设置问题 storm-core-1.1.0.jar下面有个log4j2.xml文件,默认log级别是info. <configuration monitorInterval ...

  10. Go语言JSON数据相互转换

    目录 结构体转json map转json int转json slice转json json反序列化为结构体 json反序列化为map 结构体转json 结构体转json示例: package main ...