【Python学习】8.函数基础

这篇博客详细介绍了Python的函数使用,包括函数的调用、定义、参数检查、返回多个值、递归函数以及汉诺塔算法的实现。讨论了函数的参数类型、默认参数、可变参数、关键字参数的使用,强调了正确调用函数和处理参数的重要性。通过实例和练习题加深了读者对函数的理解,最后展示了汉诺塔问题的递归解决方案。
摘要由CSDN通过智能技术生成

本节摘要:函数的定义与调用;函数的参数;位置参赛;默认参数;可变参数;关键字参数;命名关键字参数;多种参数组合使用;递归函数;汉诺塔算法实现



函数

函数的调用

调用函数,只需写出函数名(输入参数)即可。
如,求绝对值的函数abs,只有一个参数。可通过Python官方网站查看文档:
添加链接描述

或在交互式命令行通过help(abs)查看abs函数的帮助信息。

>>> help(abs)

在这里插入图片描述
如图在 help 界面时,想要回到原本书写界面,按q就可以了,也可以用Ctrl + z

调用abs函数:

>>> abs(100)
100
>>> abs(-20)
20
>>> abs(12.34)
12.34

调用函数时,若输入的参数数量有误,会报错TypeError,且python会告知你,abs()有且仅有1个参数,但你给出了两个:

>>> abs(1, 2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: abs() takes exactly one argument (2 given)

若输入的参数类型有误,也会报错TypeError,并且给出错误信息:str是错误的参数类型:

>>> abs('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bad operand type for abs(): 'str'

max函数max()可以接收任意多个参数,返回最大值。

比较函数cmp(x, y)需要两个参数,如果x<y,返回-1,如果x==y,返回0,如果x>y,返回1:

>>> cmp(1, 5)
-1
>>> cmp(5, 5)
0
>>> cmp(5, 2)
1

数据类型转换

Python内置的常用函数还包括数据类型转换函数,例如:

int('14')
14
>>> int(3.14)
3
>>> float('3.14')
3.14
>>> str('3.14')
'3.14'
>>> str('88')
'88'
>>> unicode(100)
u'100'
>>> bool(0)
False
>>> bool(1)
True

bool是Boolean的缩写,只有真(True)和假(False)两种取值
bool函数只有一个参数,并根据这个参数的值返回真或者假。
1.当对数字使用bool函数时,0返回假(False),任何其他值都返回真。

>>> bool(0)
False
>>> bool(1)
True

2.当对字符串使用bool函数时,对于没有值的字符串(也就是None或者空字符串)返回False,否则返回True。

>>> bool('')
False
>>> bool(None)
False
>>> bool('good')
True

3.bool函数对于空的列表,字典和元祖返回False,否则返回True。

>>> a = []
>>> bool(a)
False
>>> a.append(1)
>>> bool(a)
True

4.用bool函数来判断一个值是否已经被设置。

>>> x = raw_input('Please enter a number :')
Please enter a number :
>>> bool(x.strip())
False
>>> x = raw_input('Please enter a number :')
Please enter a number :6
>>> bool(x.strip())
True

函数名即指向一个函数对象的引用,可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:

>>> a = max                # 变量a指向max函数
>>> a(8, 2, 5)             # 所以也可以通过a调用max函数
8

总结:

调用函数,需根据函数定义,输入正确的参数。如果调用函数过程中出现错误,需要懂得看英文的错误信息。

【练习】

请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串:

# -*- coding: utf-8 -*-
n1 = 255
n2 = 1000

hex() 函数用于将10进制整数转换成16进制,返回16进制数,以字符串形式表示。

【交作业】

n1 = 255
>>> hex(n1)
'0xff'
>>> print hex(n1)
0xff
>>> hex(n2)
'0x3e8'
>>> print hex(n2)
0x3e8
>>> print hex(n1), hex(n2)
0xff 0x3e8

函数的定义

函数定义格式:def 函数名(参数):,在缩进块中编写函数体,函数的返回值用return语句返回。

例一:自定义一个求绝对值的my_abs函数

>>> def my_abs(x):
...     if x >= 0:
...         return x
...     else:
...         return -x

自行测试并调用my_abs

>>> print my_abs(-9)
9

返回结果正确。

例二:定义一个求平方的函数

>>> def power(x):
...     return x * x
...
>>> power(99)             #函数的调用只需要写出函数名( 输入参数)即可
9801

需要注意的是,一旦执行return语句,则函数执行完毕,并将结果返回。
如果没有return语句,函数执行完毕后也会返回结果,只是结果为Nonereturn None可以简写为return

例一:

def foo():
    print 123
    a = 321            # 无return其实是省略了return None
pirnt foo()

其实,这个函数定义相当于

def foo():
    print 123
    a = 321
    return
pirnt foo()

运行得到结果

123
None

例二:

>>> def baobao():
...     sx = 1
...
>>> print baobao()
None

例三:

>>> def baobao():
...     if 1 == 2:
...         return 1
...     sx = 1
...
>>> print baobao()
None

例四:

>>> def baobao(isTrue):
...     if isTrue:
...         return 1
...     sx = 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值