python函数调用的例子_实例讲解Python中函数的调用与定义

调用函数:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# 函数调用

>>> abs(100)

100

>>> abs(-110)

110

>>> abs(12.34)

12.34

>>> abs(1, 2)

Traceback (most recent call last):

File "", line 1, in

TypeError: abs() takes exactly one argument (2 given)

>>> abs('a')

Traceback (most recent call last):

File "", line 1, in

TypeError: bad operand type for abs(): 'str'

>>> max(1, 2)

2

>>> max(2, 3, 1, -5)

3

>>> int('123')

123

>>> int(12.34)

12

>>> str(1.23)

'1.23'

>>> str(100)

'100'

>>> bool(1)

True

>>> bool('')

False

>>> a = abs # 变量a指向abs函数,相当于引用

>>> a(-1) # 所以也可以通过a调用abs函数

1

>>> n1 = 255

>>> n2 = 1000

>>> print(hex(n1))

0xff

>>> print(hex(n2))

0x3e8

定义函数:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

#函数定义

def myAbs(x):

if x >= 0:

return x

else:

return -x

a = 10

myAbs(a)

def nop(): # 空函数

pass

pass语句什么都不做 。

实际上pass可以用来作为占位符,比如现在还没想好怎么写函数代码,就可以先写一个pass,让代码运行起来。

if age >= 18:

pass

#缺少了pass,代码就会有语法错误

>>> if age >= 18:

...

File "", line 2

^

IndentationError: expected an indented block

>>> myAbs(1, 2)

Traceback (most recent call last):

File "", line 1, in

TypeError: myAbs() takes 1 positional argument but 2 were given

>>> myAbs('A')

Traceback (most recent call last):

File "", line 1, in

File "", line 2, in myAbs

TypeError: unorderable types: str() >= int()

>>> abs('A')

Traceback (most recent call last):

File "", line 1, in

TypeError: bad operand type for abs(): 'str'

def myAbs(x):

if not isinstance(x, (int, float)):

raise TypeError('bad operand type')

if x >= 0:

return x

else:

return -x

>>> myAbs('A')

Traceback (most recent call last):

File "", line 1, in

File "", line 3, in myAbs

TypeError: bad operand type

返回两个值?

import math

def move(x, y, step, angle = 0):

nx = x + step * math.cos(angle)

ny = y - step * math.sin(angle)

return nx, ny

>>> x, y = move(100, 100, 60, math.pi / 6)

>>> print(x, y)

151.96152422706632 70.0

其实上面只是一种假象,Python函数返回的仍然是单一值 。

>>> r = move(100, 100, 60, math.pi / 6)

>>> print(r)

(151.96152422706632, 70.0)

实际上返回的是一个tuple!

但是,语法上,返回一个tuple可以省略括号, 而多个变量可以同时接受一个tuple,按位置赋给对应的值。

所以,Python的函数返回多值实际就是返回一个tuple,但是写起来更方便。

函数执行完毕也没有return语句时,自动return None。

练习 :

import math

def quadratic(a, b, c):

x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)

x2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a)

return x1, x2

x1, x2 = quadratic(2, 5, 1)

print(x1, x2)

>>> import math

>>> def quadratic(a, b, c):

... x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)

... x2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a)

... return x1, x2

...

>>> x1, x2 = quadratic(2, 5, 1)

>>> print(x1, x2)

-0.21922359359558485 -2.2807764064044154

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值