Mark_yao

第三章--函数相关知识

while True:

  if cpu利用率 >= 90%

    连接邮件服务器

    发送邮件

    关闭连接

  

  if 内存利用率 >= 90%

    连接邮件服务器

    发送邮件

    关闭连接

  if 硬盘利用率 >= 90%

    连接邮件服务器

    发送邮件

    关闭连接

 

 

此上代码重复代码太多,日后需要修改代码,需要修改的点太多,维护性太差。。由此引出了函数,把重复代码提取出来,放在公共的地方,起个名字,之后调用即可

 

就像如下代码这样:

 

def 发送邮件(内容)

  连接邮箱服务器

  发送邮件

  关闭连接

 

-----》对顶上的代码进行优化后如下:

while True:

  if cpu利用率 >= 90%

    发送邮件

  if 内存利用率 >= 90%

    发送邮件

  if 硬盘利用率 >= 90%

    发送邮件

 

-----------------

def sayhi():  # 函数名

  print("大家好")

 

使用的使用,sayhi()  # 加()是调用,不加是指向代码所在的内存地址

 

 

如下代码

 a,b = 5,8

c = a**b

print(c)

使用函数来看,就是如下

def calc(x,y)    # ---《,x,y就是形参

  res = x**y

  return res # 返回函数执行结果

c = cale(x,y)  # 使用如上函数    # 这里的X和Y就是实参,

 

形参:调用时才分配到内存,调用完毕后释放内存,所以,形参只在函数内部有效

实参: 可以是常亮,变量,表达式,函数等,调用时必须是确认的值,以便把参数传给形参,所以应该预先赋值

 

 

 

默认参数

 

def stu(name,age,country,course)

  print('姓名:',name)

  print('age:',age)

  print('国籍:',counry)

  print('课程:',course)

使用如下优化:

def stu(name,age,course,country='cn')

  print('姓名:',name)

  print('age:',age)

  print('国籍:',counry)

  print('课程:',course)

 

非默认参数必须在默认参数的前面,如果不想按照顺序,那就必须执行参数名,但必须放在位置参数之后     比如   def stu(name,course,age=23,country='cn')

 

匿名函数

 def   cale(x,y)

  return x**y

匿名函数写法   lambda x,y:x**y  # 声明一个匿名函数

把匿名函数赋给一个变量后  a = lambda x,y:x**y

如下操作效果一样

print(cale(3,8))

print(a(3,8))

 

匿名函数2

def cale(x,y)

  if x <y:

    return x**y

  else:

    return x/y

用匿名函数表达就是   :     a = lambda x,y:x**y  if  x<y else x/y

 

 

 

map()函数
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]

如果希望把list的每个元素都作平方,就可以用map()函数:



因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:

def f(x):
    return x*x
print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
输出结果:

[1, 4, 9, 10, 25, 36, 49, 64, 81]
注意:map()函数不改变原有的 list,而是返回一个新的 list。

 

posted on 2018-01-11 13:54  Mark_yao  阅读(156)  评论(0)    收藏  举报