六、Python函数的基本概念

来源:互联网 发布:淘宝3元优惠券图片 编辑:程序博客网 时间:2024/04/29 06:19
函数的定义
def 函数名(参数):
函数主题句
def的意思相当于define 如果函数直接print,一定要在后面加上个()(如果直接输出必须有return)。
个人学到这里就感觉Python要比C++写起来方便的多。
函数的参数:
不止可以加一个
def name(a, b):
print "my %s is %s"%(a,b)
参数《==》抽象
对于抽象多参函数:
def nec_name(*num):
for i in num:
print i

这样num就成为了一种元组类型
参数又分为可选参数和必须的参数:必选参数后面不跟=(没有默认值),可选参数后面跟=(有默认值)

函数的健壮性:
1、你永远知道你的函数返回什么
2、返回你想要的结果
----------------------------------------------------
习题:

1.定义一个方法 func,该func可以引入任意多的整型参数,结果返回其中最大与最小的值。

2.定义一个方法func,该func可以引入任意多的字符串参数,结果返回(长度)最长的字符串。

3.定义一个方法get_doc(module),module参数为该脚本中导入或定义的模块对象,该函数返回module的帮助文档。

例 print get_doc(urllib),则会输出urllib这个模块的帮助文档。

4.定义一个方法get_text(f),f参数为任意一个文件的磁盘路径,该函数返回f文件的内容。

5.定义一个方法get_dir(folder),folder参数为任意一个文件夹,该函数返回folder文件夹的文件列表。提示(可以了解python的glob模块)

#coding=utf-8
import glob
def Finds(*num):#输出最大值和最小值
max = num[0]
min = num[0]
for i in num:
if i >= max:
max = i
if i <= min:
min = i
print max,min

def func(*str):#定义一个方法func,该func可以引入任意多的字符串参数,结果返回(长度)最长的字符串。
s = list(str)
dic = dict([len(x),x] for x in s)
return dic[max(dic)]


def get_help(a):#定义一个方法get_doc(module),module参数为该脚本中导入或定义的模块对象,返回module的帮助文档。
return help(a)

def get_text(a):#定义一个方法get_text(f),f参数为任意一个文件的磁盘路径,该函数返回f文件的内容。
f = open(a,'r')
s = f.read()
return s

def get_dir(a):#定义一个方法get_dir(folder),folder参数为任意一个文件夹,该函数返回folder文件夹的文件列表。
dd = "%s/*.*"% a
return dd
---------------------------------------------------------------------------------
命名方式:1、下划线命名法 get_doc 2、驼峰命名法 getDocFromTxt
---------------------------------------------------------------------------------
1 定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型。其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数)。

2 定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容。提示(可以了解python的urllib模块)。

3 定义一个方法 func,该func引入任意多的列表参数,返回所有列表中最大的那个元素。

4 定义一个方法get_dir(f),f参数为任意一个磁盘路径,该函数返回路径下的所有文件夹组成的列表,如果没有文件夹则返回"Not dir"。
----------------------------------
import glob
import urllib
def getNum(a):
Nlist = []
if not isinstance(a,list):
return "这不是一个列表类型"
for i in a:
if not isinstance(i,int):
return "这不是一个数字类型"
else:
if i%2 ==0:
Nlist.append(i)

return Nlist

def getUrl(a,b):
f = urllib.urlopen(a)
r = open(b,'w+')
for lines in f.readlines():
r.write(lines)

def getList(*lists):
get_list = []
for l in lists:
if not isinstance(l,list):
return "里面有至少一个非列表"
else :
get_list.append(l)

return max(max(get_list))
-------------------------------------------------------------
1、函数的作用域问题
如果函数没有运行,那么函数里做出的变量改变是不起作用的
2、lambda
3、关于调用多个结构的问题
元组是* 字典是 **
在引入参数的时候,不同类型的顺序不能颠倒
先是位置匹配的参数,再是关键字匹配的参数,同样关键字匹配的参数的顺序也不能颠倒
0 0
原创粉丝点击