Python内置函数

简介:

 

内置函数之一:lambda表达式

前面知识回顾:

三目运算:

#普通条件语句

  1: if 1 == 1:
  2:     name ='曹小贱'
  3: else:
  4:     name = '曹高田'

#使用三目运算

  1: name1 = '曹小贱' if 1 == 1 else '曹高田'

同样的简单的函数也可以使用一种简单的方式,即:lambda表达式

普通函数:

  1: def func(arg):
  2:     return arg + 1
  3: result = func(100)
  4: print result

lambda函数:

  1: func1 = lambda a: a + 1
  2: result1 = func1(200)
  3: print result1

特性:

1:处理简单逻辑的函数

2:自动返回数据,默认使用return

内置函数之二:map函数

遍历序列,对序列中的每个元素进行操作,最终获取到新的序列。

范例:

  1: li = [11,22,33,343]
  2: def func(a):
  3:     return a + 10
  4: new_li = map(func,li)
  5: print new_li

范例:二个序列相加

  1: li = [11,22,33,343]
  2: li_1 = [1,2,3,4]
  3: new_li = map(lambda a,b:a+b,li,li_1)
  4: print new_li

内置函数之三:filter函数

对序列的中的元素进行筛选但是只取内容为真的值

  1: li = [11,22,33,343,0,""] 
  2: print filter(None,li)
  3: 结果:[11, 22, 33, 44, 55, 66]
  4: print filter(lambda a:a>33,li)
  5: 结果:[44, 55, 66]

注释:

      0:它是None;空字符串也是None

内置函数之四:reduce

对序列中的元素进行累计操作

特性:

# reduce的第一个参数,函数必须要有两个参数

# reduce的第二个参数,要循环的序列

# reduce的第三个参数,初始值

image

 

 

范例:

  1: li = [11,22,33,343]
  2: result = reduce(lambda a,b:a + b,li)
  3: print result
  4: 结果:409

范例二:

  1: li = [11,22,33,343]
  2: result = reduce(lambda a,b:a + b,li,1000)
  3: print result
  4: 结果:1409

注释:

        给定一个初始值,从1000开始加,想当于1000+第一个数字,然后再加第二个数字

yeild生成器

当执行yeild的时候吗,首先冻结函数,记住冻结的位置,下次执行的时候,直接从冻结的地方开始继续执行。

实例一:不带参数

  1: def func():
  2:     yield 1
  3:     yield 2
  4:     yield 3
  5: for i in func():
  6:     print i
  7: 结果:1 2 3

实例二:带参数

  1: def func(arg):
  2:     seed = 0
  3:     while True:
  4:         seed += 1
  5:         if seed > arg:
  6:             return 
  7:         else:
  8:             yield seed
  9: for i in func(4):
 10:     print i
 11: 结果: 1 2 3 4

 

 

 

装饰器

装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和后添加相应的操作

注释:

       一定要搞清楚,函数中的返回值是一个函数还是一个对象(函数的内存地址)

范例一:

  1: def wrapper(arg):
  2:     if login("cgt"):
  3:         return arg
  4: def login(user):
  5:     if user == "cgt":
  6:         return True
  7:     else:
  8:         print "invalid username"
  9: def home():
 10:     print "showing the home page"
 11: 
 12: home = wrapper(home)
 13: home()
 14: 结果:showing the home page

注释:

       1:函数home直接写,什么都不加,是他的内存地址。

       2:使用wrapper函数将home的内存地址传给arg

       3:在wrapper中调用login函数进行用户名的判断

执行过程:

       1:home = wrapper(home),括号中的home是home函数的内存地址,wrapper函数将home的内存地址当作一个实参传递给形参,传给arg。

       2:调用wrapper函数执行,函数中调用login函数,login函数传入的实参cgt传递给login的形参user。执行login函数,判断是否正确,正确返回True给wrapper函数,不正确输出“invalid username”。

       3:wrapper函数接收到login的True返回值后,继续执行,返回arg(还是home函数的内存地址)

       4:home = wrapper(home)接收到wrapper的返回值,home函数的内存地址,将其赋值给home。

       5:home()。执行home函数。

范例二:

  1: def wrapper(arg):
  2:     if login("cgt"):
  3:         return arg
  4: def login(user):
  5:     if user == "cgt":
  6:         return True
  7:     else:
  8:         print "invalid username"
  9: @wrapper
 10: def home():
 11:     print "showing the home page"
 12: home()

注释:

      @wrapper 等于 home = wrapper(home)

范例三:

带参数的装饰器

  1: def wrapper(func):
  2:     def wrappre2(*args,**kwargs):
  3:         user = args[0]
  4:         if user == 'cgt':
  5:             return func(*args,**kwargs)
  6:         else:
  7:             return error(user)
  8:     return wrappre2
  9: 
 10: def error(user):
 11:     print "authentication failed"
 12: 
 13: @wrapper
 14: def home(username):
 15:     print "showing the home page",username
 16: 
 17: @wrapper
 18: def host_list(username,host):
 19:     print "showing the  user list page",username,'',host
 20: 
 21: home('cgt')
 22: host_list('cgt','192.168.1.1')
 23: 结果:
 24: showing the home page cgt
 25: showing the  user list page cgt  192.168.1.1

注释:

      1:home和host_list函数调用的时候,因为他们的函数前面有装饰器,所以要先通过装饰器函数。

冒泡算法

范例:

两个数值或者字符串的进行交换,使用中间变量进行过度

  1: li = [99,22,44,11,77,23]
  2: print len(li)  #6
  3: for x in range(1,len(li)):
  4:     #循环的x等于1,2,3,4,5
  5:     for y in range(len(li)-x):
  6:         #循环的y等于5,4,3,2,1
  7:         num1 = li[y]
  8:         num2 = li[y+1]
  9:         if num1 > num2:
 10:             tmp = num1
 11:             li[y] = num2
 12:             li[y+1] = tmp
 13: print li
***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************
本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/5569753.html ,如需转载请自行联系原作者
相关文章
|
3月前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
111 0
|
2月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
150 67
|
18天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
27 3
|
22天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
33 2
|
7天前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
9 0
|
1月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
58 18
|
1月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
77 8
|
1月前
|
Python
Python中的函数
Python中的函数
53 8
|
2月前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
2月前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
70 5

热门文章

最新文章