1.函数定义 

    函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字 ,可以通过函数名在程序的不同地方多次执行(这通常叫函数调用)

  • 预定义函数(可以直接使用)

  • 自定义函数(自己编写)

为什么使用函数?

    降低编程难度,通常将一个复杂的大问题分解成一系列的小问题,然后将小问题划分成更小的问题,当问题细化为足够简单时,我们就可以分而治之,各个小问题解决了,大问题就迎刃而解了。

    代码重用,避免重复劳作,提高效率。

函数的定义和调用

    def 函数名([参数列表])    //定义

    函数名 ([参数列表])     //调用

举例:

    函数定义:

    def fun():

       print("hello world")

    函数调用:

    fun()

    hello world


脚本举例:

    #/usr/bin/env python

    # -*- coding:utf-8 -*-

    # @time   :2018/1/2 19:49

    # @Author :FengXiaoqing

    # @file   :int.py

    def fun():

        sth = raw_input("Please input sth: ")

    try: #捕获异常

        if type(int(sth))==type(1):

            print("%s is a number") % sth

    except:

        print("%s is not number") % sth

    fun()



2.函数的参数

    形式参数和实际参数

    在定义函数时,函数名后面,括号中的变量名称叫做形式参数,或者称为"形参"

    在调用函数时,函数名后面,括号中的变量名称叫做实际参数,或者称为"实参"

    

    def fun(x,y):  //形参

    print x + y

    fun(1,2)     //实参

    3

    fun('a','b')

    ab

3.函数的默认参数

练习:

    打印系统的所有PID

    要求从/proc读取

    os.listdir()方法

  

    #/usr/bin/env python

    # -*- coding:utf-8 -*-

    # @time   :2018/1/2 21:06

    # @Author :FengXiaoqing

    # @file   :printPID.py

    import sys

    import os

    def isNum(s):

        for i in s:

            if i not  in '0123456789':

                break    #如果不是数字就跳出本次循环

            else:   #如果for中i是数字才执行打印

                print  s

    for j in os.listdir("/proc"):

        isNum(j)


函数默认参数:

    缺省参数(默认参数)

        def fun(x,y=100)    

            print x,y

        fun(1,2)

        fun(1)

    定义:

        def fun(x=2,y=3):

            print x+y

    

    调用

        fun()

        5

        fun(23)

        26

        fun(11,22)

        33

习题

1. 设计一个函数,统计任意一串字符串中数字字符的个数

例如:

"adfdfjv1jl;2jlk1j2" 数字个数为4个

2. 设计函数,统计任意一串字符串中每个字母的个数,不区分大小写

例如:

"aaabbbcccaae111"

a 5个

b 3个

c 3个

e 1个