美文网首页
廖雪峰 | 3.0 函数

廖雪峰 | 3.0 函数

作者: 苦哈哈的柠檬水 | 来源:发表于2022-04-13 21:07 被阅读0次

1 调用函数

2 定义函数

3 函数的参数

4 递归函数

1 调用函数

1,使用函数时,需要知道函数的名称和参数
2,help(函数名称)查看函数的帮助信息

help(abs)

3,将函数名赋给一个变量,相当于给这个函数起了一个“别名”

>>> a = abs # 变量a指向abs函数
>>> a(-1) # 所以也可以通过a调用abs函数
1

2 定义函数

1,自定义函数:def语句+函数名+括号+参数+:;用函数的返回值用return语句

# -*- coding: utf-8 -*-
def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
>>> my_abs(-9)
9

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

>>> from abstest import my_abs
>>> my_abs(-8)
8

3,定义空函数:用pass语句
pass作为占位符,如现在还没想好怎么写函数的代码,可以先放一个pass,让代码能运行起来。

def nop():
    pass

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

if age >= 18:
    pass

4,参数类型做检查:isinstance()函数

def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x
#测试
>>> my_abs('A')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in my_abs
TypeError: bad operand type

5,练习题

  • 问:请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程ax^2+bx+c=0 的两个解。
  • 答:
# -*- coding: utf-8 -*-
import math
def quadratic(a, b, c):
    if not (isinstance(a,(int,float)) and isinstance(b,(int,float)) and isinstance(c,(int,float))) :
        raise TypeError('bad operand type')
    if a == 0:
        x = -(c/b)
        return x
    elif b**2-4*a*c >= 0:
        x1 = (-b+math.sqrt(b**2-4*a*c))/(2*a)
        x2 = (-b-math.sqrt(b**2-4*a*c))/(2*a)
        return x1,x2
    else:
        print('无实数解')
        return None
# 测试:
print('quadratic(2, 3, 1) =', quadratic(2, 3, 1))
print('quadratic(1, 3, -4) =', quadratic(1, 3, -4))

if quadratic(2, 3, 1) != (-0.5, -1.0):
    print('测试失败')
elif quadratic(1, 3, -4) != (1.0, -4.0):
    print('测试失败')
else:
    print('测试成功')

相关文章

  • 廖雪峰 | 3.0 函数

    1 调用函数 2 定义函数 3 函数的参数 4 递归函数 1 调用函数 1,使用函数时,需要知道函数的名称和参数2...

  • Python:3.函数

    调用函数 定义函数 函数的参数 递归函数 参考 廖雪峰的Python教程

  • 廖雪峰JavaScript函数

    函数定义和调用 abs.length; 可以检测函数内有多少变量 arguments 只在函数内部起作用,并且永远...

  • (二)JavaScript 函数

    本文是大神廖雪峰的JavaScript教程学习笔记。并不是教程,如有需要,请前往廖雪峰大神大博客. 一、函数定义和...

  • JavaScript | 函数与方法

    Reference : JavaScript教程 - 廖雪峰的官方网站 JavaScript函数基础 定义函数 在...

  • 箭头函数

    廖雪峰-箭头函数 箭头函数 基础语法: (参数1, 参数2, …, 参数N) => { 函数声明 }//相当于:(...

  • 廖雪峰JavaScript高阶函数

    高阶函数 函数嵌套函数,子函数接收父函数传递进来的参数 map map()传入的参数是pow,即函数对象本身 运算...

  • 函数-廖雪峰Python教程

    调用函数 1.max()max()可以接收任意多个参数,并返回最大的那个 定义函数 1.空函数pass语句什么都不...

  • 廖雪峰 | 3.2 递归函数

    1,定义一个函数在内部调用自身本身,这个函数就是递归函数。例如,计算阶乘n! = 1 x 2 x 3 x ... ...

  • JavaScript学习笔记(三)

    主要源于廖雪峰老师的JavaScript教程 1. 高阶函数 参数传入函数 JavaScript的函数其实都指向某...

网友评论

      本文标题:廖雪峰 | 3.0 函数

      本文链接:https://www.haomeiwen.com/subject/dcevsrtx.html