【Python学习笔记】函数

本文介绍了Python中的函数概念,包括内置函数的使用方法及如何自定义函数。讲解了函数的参数传递、类型检查及返回多个值的方式。通过实例演示了如何利用Python内置函数和自定义函数提高代码效率。

函数:就是完成特定功能的代码段

 将重复的代码段封装成函数,可以提高代码利用率和实现抽象

1、Python提供了大量的内置函数

关于python的内置函数使用,可以参官网上的文档库https://docs.python.org/2/library/index.html,

中文版文档库http://python.usyiyi.cn/translate/python_278/library/functions.html
当然,也可以在交互命令行下,输入help(),然后输入帮助信息,退出帮助用Ctrl+C

#!/usr/bin/env python
#-*- coding:utf-8 -*-


# ★常见内置函数之abs(n)==》绝对值
print abs(-20.1)
# print abs(-20,9)            # 报错信息
# print abs('a')              # 报错信息
# 常见内置函数之cmp(x,y)==》比较大小:x<y返回-1,x=y返回0,x>y返回1
print cmp(2,3)
print cmp(2,2)
print cmp(2,1)
print cmp(u'中文',2)          # 字母对应的ASCII值
#常见内置函数之类型转换int(),float(),str(),unicode(),bool()
print int("123")              # 全数字
# print int("123")            # 报错信息
print str(123)                # 全数字
print unicode('abc')

# ★函数名其实就是指向一个函数对象的引用,可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”
len_str = len
len_list = len
print len_str("abcd")
print len_list([1,2,3,4])

运行效果:161058_tNJZ_2913386.png

2、Python内置的函数只能协助解决部分问题,实际中最常用到的是自定义函数,将重复性高的代码段,自己封装成函数,以简化操作。同时自定义函数时应注意一些问题。


# ★★★自定义函数
PI = 3.14
def area_of_circle(r):
    if r <= 0:
	    return None
    else:
	    return PI * r * r
print area_of_circle(2)
# 自定义函数需要使用def语句,冒号后的代码块中写函数体
# 函数遇到return,立即结束,并返回结果。如果没有return,函数执行完毕,会自动返回None;return None等同于return

# ★空函数
# 如果想定义一个什么也不做的函数,或者函数体还没想好的函数,此时可以定义成一个空函数
def get_a_girlfriend():
    pass
print get_a_girlfriend()
# pass语句表示什么也不做,常用作占位符或内容没想好的地方
if 19 >= 18:
    pass

# ★参数检查==》借助内置函数isinstance()
# 解释器可以对自定义函数进行参数个数检查,但是不会进行参数类型检查,现在为完善自定义函数,自行设置参数检查
# 对area_of_circle(r)函数设置参数检查,传入的参数只允许是int和float
PI = 3.14
def circ_of_circle(r):
    if not isinstance(r,(int,float)):
	    raise TypeError("bad operand type! only for int or float!")
    if r <= 0:
	    return None
    else:
	    return 2 * PI * r
# print circ_of_circle('a')   # 查看报错
print circ_of_circle(2)

# ★函数同时返回多个值
# 需要提前说明的是,Python函数确实可以同时返回多个值,这点与其他语言有点不一样

# 导入Python内置的模块用关键字import。例如import 模块名。具体到某个方法可以用from 模块名 import 方法名 
# 对于第一种,访问该模块内方法时需要模块名.方法名。第二种可以直接使用方法名

# 创建一个移动的点的位置坐标.参数是起始点坐标,位移大小,角度
import math
def Point_Move(x, y, displace, angle):
    xx = x + displace * math.cos(angle)
    yy = y - displace * math.sin(angle)
    return xx, yy
nx, ny = Point_Move(100,100,20,math.pi / 6)
print nx, ny
# 从上看出,我们确实同时得到了两个返回值
print Point_Move(100,100,20,math.pi / 6)
# 但是,这句的返回值却是一个tuple类型的值【本质上返回的就是一个tuple】
nx, ny = Point_Move(100,100,20,math.pi / 6)
print nx
# 这句话说明返回的tuple可以由几个变量同时、分别对应接收【本质上返回的是tuple,但是写成返回多个值更方便分析数据】

运行效果:161404_3FE6_2913386.png

转载于:https://my.oschina.net/MasterLi161307040026/blog/746317

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值