码迷,mamicode.com
首页 > 其他好文 > 详细

进阶 第二课:函数(第二节)

时间:2016-06-10 12:17:25      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:

1. 习题问题的总结
    (1) 不要讲问题复杂化, 越简单越好
    (2) 自己要测试。多测试,测试要完整(类型测试和内容测试)


# -*- coding=utf-8 -*- 

# 习题:

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

def f_max(*kr):
    a = kr[0]
    for i in kr:
        if isinstance(i,int):
            if a <= i:
                a = i 
            else:
                pass
        else:
            return kr is contain not integer cells
    return a 

print f_max(1,2,3,4)



# 找到最大值和最小值 
def fun_max_min(*num):
    for i in num:
        if not isinstance(i, int):
            pass 
        else:
            return 请输入整型数字
    a = sorted(num) 
    return "maxinum is %d and mininum is %d" % (a[-1],a[0])


print fun_max_min(1,2,3,4)

#老师点评:可以用filter对数据进行过滤,然后取出最大值和最小值 




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

def str_len(*kr):
    lens = 0 
    max_str = ‘‘
    for i in kr:
        if isinstance(i, str):
            if lens <= len(i):
                lens = len(i)
                max_str = i 
            else:
                pass
        else:
            return the input contain not str cells
    return i 


print str_len(asd,asdas,sfdfasdsdfsd,345322)


# 方法二:

def str_maxlen(*sen):
    for i in sen:
        if isinstance(i,str):
            pass
        else:
            return 请输入字符串
    a = sorted(sen,key=lambda k:len(k), reverse=True)
    return maxinum len string is %s % a[0]

print str_maxlen(asd,asdas,sfdfasdsdfsd)





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

def get_doc(str1):
    return help(str1)

get_doc("urllib")


# 方法二:

import os 
def get_doc2(str1):
    a = pydoc %s % str1 
    m = os.popen("python -m %s" % a).read()
    return m 

print get_doc2("str")  # prinnt参数里面一定要加引号 




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

import os 
def get_text(str1):
    if os.path.exists(f):
        with open(str1,r) as g:
            return g.read()
    else:
        return "没有这个文件" 

get_text(d:/ttt.txt)







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


import glob
a = []
def get_dir(dir1):
    a = glob.glob(dir1+"*")
    return [a[i].decode(gbk) for i in range(len(a))]

a = get_dir("D:/")

for i in a:
    print i 





2. 怎么去学习使用函数
    (1) 别管那么多复杂的, 先直接把功能实现了
    (2) 抽象成函数:命名规范, 伪代码, 参数默认值
    (3) 将函数变得更加健壮, 让他可以跑很多地方.
        1) 假设你写的函数是要交给你的基友用 -> 功能完整
        2) 假设你写函数是交给你的学弟用     -> 异常处理完善 
    (4) 测试
        1) asset
        2) 对函数的反馈值进行一个值和类型的测试
        3)单元测试 


def func1():
    pass


命名规范:
下划线命名法:get_doc_from_url()
驼峰命名法:  GetDocFromUrl()


为什么要用默认值:
1. 更省事
2. 更可配置 

 

进阶 第二课:函数(第二节)

标签:

原文地址:http://www.cnblogs.com/huiming/p/5573381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!