进阶篇1-函数第一节

进阶篇函数第一节

1.函数基本概念

2.参数 <=> 抽象

3.参数分为可选参数必须的参数

更复杂的需求

1 + 2 = 3

1 + 2 + 3

1 + 2+ ....+ 1000

def add(*num):

        d= 0

        fori in num:

                  d+= i

        returnd


print add(1,2,3,4,5)


def add(*num):

        d= 0

        fori in num:

                  d+= i

        returnd

print add(1,2,3,4,5)

print add(1,2,3)

print add(2,4,6,8,1,2,3,4,12312,12314,123,123,123)

var1

var2

var3

var1 = None

1.可选参数是有默认值的

2.必须参数是没有默认值的

默认值和没有默认值的区别在于=

函数的健壮性


1.你永远知道你的方法会返回什么(异常处理,条件判断)

2.返回你想要的结果


def add(num1 ,num2):


        ifisinstance(num1,int) and isinstance(num2, int):

                  returnnum1+num2

        else:

                  return'参数里有不是数字的类型'


print add('a',(1,2,3))

print add(1,2)

assert add(1,2) == 3

assert add(2,4) == 3

课后题

#coding=gbk
import os
import glob
import sys
def maxnum(*num):
    "1.定义一个方法maxnum(),该方法可以引入任意多的整型参数,结果返回一个元组,包括最大与最小的值。比如:\
例: maxnum(1,33,44,555,11,444,1144) 返回结果:(1144, 1)"
    if filter(lambda x:isinstance(x,str),num) == ():
       return (max(num),min(num))
    else:
       return '传入参数有问题'
          
def maxstr(*str_list):
    "2.定义一个方法maxstr(),该func可以引入任意多的字符串参数,结果返回(长度)最长的字符串。比如:\
例: maxstr('fewfwef','fewfwafwaef','fewfwefwefwefwefwef','www','fewfewf','2222','fewfweafwcc'),返回结果:'fewfwefwefwefwefwef'"
    list = {}
    for x in str_list:
        list.update({ x:len(x)})
    for x in list.keys():
        if len(x) == max(list.values()):
            return x
          
assert maxstr('fewfwef','fewfwafwaef','fewfwefwefwefwefwef','www','fewfewf','2222','fewfweafwcc') == 'fewfwefwefwefwefwef'
def get_doc(module):
    "3.定义一个方法get_doc(module),module参数为该脚本中导入或定义的模块对象,该函数返回module的帮助文档。\
例 print get_doc(urllib),则会输出urllib这个模块的帮助文档。"
    mlist = sys.modules.keys()
    if module not in mlist:
       __import__(module)
       return help(module)
    else:
        return help(module)
def get_text(f):
    "4.定义一个方法get_text(f),f参数为任意一个文件的磁盘路径,该函数返回f文件的内容。"
    if os.path.exists(f):
        fname = open(f,'r')
        flist = fname.read()
        fname.close()
        return flist
    else:
        return '您输入的路径不存在'
      
def get_dir(folder):
    "5.定义一个方法get_dir(folder),folder参数为任意一个文件夹,该函数返回folder文件夹的文件列表。提示(可以了解python的glob模块)"
    if os.path.isdir(folder):
        f = glob.glob('{0}\*'.format(folder))
        return f
    else:
        return '这个目录不存在!!'


本文出自 “BrotherXing” 博客,谢绝转载!

你可能感兴趣的:(进阶篇1-函数第一节)