当前位置:   article > 正文

函数篇︱Python学习笔记_python使用可变参数编写一个函数calc。函数的功能:给定一组数字a,b,c……,请计算a

python使用可变参数编写一个函数calc。函数的功能:给定一组数字a,b,c……,请计算a

python不仅能灵活定义函数,也可以直接调用内置函数。

调用内置函数

  • 需要知道函数名称和参数

  • 也可通过交互式命令查看帮助信息

  • 例如:http://docs.python.org/3/library/functions.html#abs 可通过官方文档查看abd函数的帮助信息

# abs函数
help(abs)
  • 1
  • 2
Help on built-in function abs in module builtins:

abs(x, /)
    Return the absolute value of the argument.
  • 1
  • 2
  • 3
  • 4
abs(10)
  • 1
10
  • 1
# 若传入参数数量错误,会报typeerror的错误,且会明确告知参数数量
abs(10,5)
  • 1
  • 2
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-6-8c01ff43585d> in <module>
      1 # 若传入参数数量错误,会报typeerror的错误,且会明确告知参数数量
----> 2 abs(10,5)


TypeError: abs() takes exactly one argument (2 given)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
# 传入参数类型不被函数所接受,也会报typeerror的错误,且给出错误信息
abs('a')
  • 1
  • 2
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-7-3a9663d9ff8b> in <module>
      1 # 传入参数类型不被函数所接受,也会报typeerror的错误,且给出错误信息
----> 2 abs('a')


TypeError: bad operand type for abs(): 'str'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
# max、min可以接收任意多个参数
min(1,3,5,-6)
  • 1
  • 2
-6
  • 1

数据类型转换

例如:int()函数可将其他数据类型转换为整数

int('12')
  • 1
12
  • 1
int(0.7)
  • 1
0
  • 1
str(0.5)
  • 1
'0.5'
  • 1
bool('a')
  • 1
True
  • 1
bool('')
  • 1
False
  • 1
  • 函数名其实为指向一个函数对象的引用,可以将函数名赋给一个变量,相当于给这个函数起了一个“别名”
a = abs
# 变量a指向abs函数
a(-666)
  • 1
  • 2
  • 3
666
  • 1
练习:用内置hex()函数将一个整数转换成十六进制表示的字符串
n1 = 255
n2 = 1000
print(hex(n1),hex(n2))
  • 1
  • 2
  • 3
0xff 0x3e8
  • 1

定义函数

  • 定义函数使用def语句,依次写出函数名、括号、括号中的参数和冒号:,在缩进块中编写函数体,return语句返回函数的返回值。
def my_function(x):
    if x>=5:
        return x
    else:
        return x+5
  • 1
  • 2
  • 3
  • 4
  • 5
print(my_function(-97))
  • 1
-92
  • 1
  • 函数体内部的语句在执行时,一旦执行到return,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。
  • 若没有return语句,函数执行完毕会返回none。return none可以简写为reture。
def my_function(x):
    if x>=5:
        return
    else:
        return
  • 1
  • 2
  • 3
  • 4
  • 5
print(my_function(5))
  • 1
None
  • 1
  • 若将my_function()的函数定义保存为function.py文件了,那么,可以在该文件的当前目录下启动python解释器,用from function import my_function来导入函数。

空函数

  • pass语句定义一个什么事也不做的空函数
  • pass可用来作为占位符,比如现在还没想好怎么写函数的代码,就可以用pass,让代码能运行起来
def nop():
    pass
  • 1
  • 2
if abs(9) >= 18:
    pass
# 若缺少pass则代码运行就会有语法错误
  • 1
  • 2
  • 3

参数检查

  • 若参数个数错误,则python解释器会自动检查出来
  • 若参数类型不对:
    内置函数会检查出参数错误;而自己定义的函数(没有事先定义)没有参数检查
# 修改定义使得对参数类型做检查,例如只允许整数和服点数类型的参数。
# 数据类型检查可以同内置函数isinstance()实现
def my_function(x):
    if not isinstance(x,(int,float)):
        raise TypeError('错错错')
    if x>=5:
        return x
    else:
        return x+5
print(my_function('z'))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-35-55c635704db6> in <module>
      8     else:
      9         return x+5
---> 10 print(my_function('z'))


<ipython-input-35-55c635704db6> in my_function(x)
      3 def my_function(x):
      4     if not isinstance(x,(int,float)):
----> 5         raise TypeError('错错错')
      6     if x>=5:
      7         return x


TypeError: 错错错
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

返回多个值

import math
def move(x,y,step,angle=0):
    nx = x + step * math.cos(angle)
    ny = y + step * math.sin(angle)
    return nx,ny
  • 1
  • 2
  • 3
  • 4
  • 5
print(move(0,0,16))
  • 1
(16.0, 0.0)
  • 1
x, y = move(0,0,16,math.pi/6)
print(x, y)
  • 1
  • 2
13.85640646055102 7.999999999999999
</
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/71152
推荐阅读
相关标签
  

闽ICP备14008679号