函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字 ,可以通过函数名在程序的不同地方多次执行(这通常叫函数调用)
预定义函数(可以直接使用)
自定义函数(自己编写)
为什么使用函数?
降低编程难度,通常将一个复杂的大问题分解成一系列的小问题,然后将小问题划分成更小的问题,当问题细化为足够简单时,我们就可以分而治之,各个小问题解决了,大问题就迎刃而解了。
代码重用,避免重复劳作,提高效率。
函数的定义和调用
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个
原文:http://blog.51cto.com/fengyunshan911/2056827