python函数—调用函数+定义函数

抽象

函数就是最基本的一种代码抽象的方式。

调用函数

可以通过help(abs)查看abs函数的帮助信息

abs(x)  : return position number
# 常见报错:abs() takes exactly one argument (2 given        )abs()有且仅有1个参数, 不能为两个
# TypeError: bad operand type for abs(): 'str' str是错误的参数类型
max() : return the max of the argument
# max()可以接收任意多个参数,并返回最大的那个
int() ,float() ,bool(), str() ,float()
#常用函数还包括数据类型转换函数,可以把其他数据类型转换为对应类型

# 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:
a = max
print(a(1,2,3))

# hex()函数把一个整数转换成十六进制表示的字符串
print(hex(123))
#0x7b

print(sum([1,2,3,4]))
#10 这里参数要一个列表集合

定义函数

Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回

def boolean_position_num(x):
    if x >= 0 :
        return True
    else :
        return False

print(boolean_position_num(int(input())))

函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。
如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。return None可以简写为return

def boolean_position_num(x):
    if x >= 0 :
       print('position num')
    else :
        print('not position num')
# 默认return None

print(boolean_position_num(int(input())))
# 10  None

命令行格式

#调用别的文件里的函数
# main.py
from func import boolean_position_num
print(boolean_position_num(int(input())))

# func.py
def boolean_position_num(x):
    if x >= 0 :
       print('position num')
    else :
        print('not position num')

空函数

#定义一个什么事也不做的空函数,可以用pass语句
def non():
    pass
#pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。不加pass就会报错
if x >= 18:
     pass

参数检查

TypeError: my_abs() takes 1 positional argument but 2 were given : 参数数量不对
自己写的函数跟内置函数的区别为:自己写的函数很多都不能支持其他的数据类型,内置函数可以
数据类型检查可以用内置函数isinstance()实现:

def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x

返回多个值? 只是返回一个tuple值 Python函数返回的仍然是单一值。

用途:在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的坐标:

def return_nums(x , y):
    return int(x),int(y)
if __name__ == '__main__':
    print(return_nums(1,2))
# (1 , 2)

小结

定义函数时,需要确定函数名和参数个数;
如果有必要,可以先对参数的数据类型做检查;
函数体内部可以用return随时返回函数结果;
函数执行完毕也没有return语句时,自动return None。
函数可以同时返回多个值,但其实就是一个tuple。

练习

ax^2+bx+c=0

from cmath import sqrt
def quadratic(a, b, c):
    a = float(a)
    b = float(b)
    c = float(c)
    temp = pow(b, 2) - 4 * a * c
    if temp<0 :
        print('该方程无解')
    x1 = (-b + (sqrt(temp))) / (2 * a)
    x2 = (-b - (sqrt(temp))) / (2 * a)
    if temp == 0:
        print('该方程只有一个解')
        return x1
    return x1, x2
if __name__ == '__main__':
    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('测试成功')

原文地址:https://www.cnblogs.com/cznczai/p/11274494.html

时间: 2024-07-30 08:34:42

python函数—调用函数+定义函数的相关文章

第七章、函数基础之定义函数的三种方式03

目录 第七章.函数基础之定义函数的三种方式03 一.无参函数 二.有参函数 三.空函数 第七章.函数基础之定义函数的三种方式03 一.无参函数 定义函数时参数是函数体接收外部传值的一种媒介 在函数阶段括号没有参数就是无参函数.调用时不需要传入实参 如果函数体代码逻辑不需要依赖外部传入值,必须定义成无参函数 def func(): print('hello nick') func() # hello nick 二.有参函数 在函数阶段括号有参数就是有参函数.调用时需要传入实参 如果函数体代码逻辑需

【Python】[函数] 调用与定义

1.数据类型转换 int(),float(),str(),bool('1')2.定义函数使用 def关键字,依次写出 函数名.括号.括号中的参数.冒号,然后在缩进体中写函数内容 例子 求绝对值的函数 def my_abs(x): if x>=0: return x else: return -x 3.return None 可以简写为 return4.pass 什么也不做,不写pass会报错 def nop(): pass 5.返回多个结果,事实上返回的是 tuple x,y = move(1,

python学习笔记5-自定义函数

1 自定义函数  (1)函数代码块以def关键字开头,然后函数标识符名称和圆括号  (2)任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数  (3)函数的第一行语句可以选择性的使用文档字符串用于存放函数说明  (4)函数内容以冒号开始 并且缩进  (5)return[expression]结束函数 选择性的返回一个值给调用方 不带  表达式的return相当于返回none 2 基本的定义和调用 1 #自定义函数 2 ''' 3 def functionname( paramet

Aerospike C客户端手册———用户定义函数—注册用户定义函数

注册用户定义函数 Aerospike C 客户端提供在数据库中注册.更新或移除一个用户定义函数(UDF)模块的能力.目前,用户定义函数仅支持LUA语言. aerospike_udf_put() - 注册或更新UDF模块. aerospike_udf_remove() - 移除UDF模块. 下面的代码引用自示例目录[examples/basic_examples/udf],由Aerospike C客户端安装包自带. 请先阅读[创建连接]章节内容,理解如何建立与集群的连接. 从文件读取UDF 很可能

函数 两种定义函数的方式

函数声明 function foo () {} 函数表达式 var foo = function () {} (function() {})() var foo = function bar() {} return function () {} 函数声明会被提前 var sum = add(1,2); // 3 console.log(sum); function add(x, y) { x = +x; y = +y; if(isNaN(x) || isNaN(y)) { return; } r

Python(调用函数、定义函数)

先定义,后使用,定义阶段只判断语法,不执行代码.上面定义阶段 if 1>2 print--有语法错误,所以报错,下面,调用了不存在的变量,不算语法错误 一.调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://docs.python.org/3/library/functions.html#abs 也可以在交互式命令行通过help(abs)查看ab

Python函数的基本定义和调用以及内置函数

首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数.简单的理解下函数的概念,就是你编写了一些语句,为了方便使用这些语句,把这些语句组合在一起,给它起一个名字.使用的时候只要调用这个名字,就可以实现语句组的功能了. 语法如下: # 定义方式 : def functionname([parameterlist]): functionname:函数名 paramet

Python 定义函数

1        函数 1.1   调用函数 要调用一个函数,需要知道函数的名称和参数. abs绝对值函数 >>> abs(-10) 10 >>> abs(-213) 213 max最大值函数 >>> max(-1,2,5) 5 数据类型转换 >>> int(12.3) 12 >>> int('12.3')   --转换带有小数的整数字符串时,会报错 Traceback (most recent call last)

Python 踩坑之嵌套函数

这里需要特别注意一下, Python是解释类型的语言. 会允许在定义A函数之前没有定义B函数的情况下,函数A调用函数B. def func1(): print "Hello fun1" fun2() def func2(): print "Hello func2" fun1() 这样做是可以的.但是试想一下, 如果函数2也调用函数1呢? 如下: def func1(): print "Hello fun1" fun2() def func2():

Python学习(五)函数 —— 内置函数 lambda filter map reduce

Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.filter.map.reduce 进行初步的学习. lambda 匿名函数 lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值. lambda语句构建的其实是一个函数对象,参考下例来感受下 lambda 匿名函数: 1 def f(i): # 用户自定义返回平方数 2 retur