【Python学习笔记】函数

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

 将重复的代码段封装成函数,能够提升代码利用率和实现抽象python

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

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

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

#!/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])

运行效果:htm

二、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,可是写成返回多个值更方便分析数据】

运行效果:utf-8

相关文章
相关标签/搜索