python之函数
本节主要内容:
1. 上节遗留的内置函数:
callable(), chr(),ord(), compile(), eval(),exec(), divmod(), isinstance() ,filter(), map()
2. 装饰器
(一)内置函数补充:
callable(): 查看函数是否可被调用,可以调用为True,否则返回False。
print(callable(0))
print(callable('string'))
def add(a,b):
return a + b
print(add(1,2))
print(callable(add)) False
False
3
True
chr(), ord() : 字母转换为数字,数字转换为字母。
r = chr(65)
print(r) n = ord('a')
print(n) A
97
应用ASCII字符代码随机生成验证码:
点击一次随机自动生成验证码:
import random
li = []
for i in range(6):
r = random.randrange(0,5)
if r == 2 or r == 4:
num = random.randrange(0,10)
li.append(str(num))
else:
temp = random.randrange(65,91)
c = chr(temp)
li.append(c)
result = ''.join(li)
print(result) 7SC45Q
complie() : 将字符串转换为Python代码
eval() : 编译成表达式,执行表达式,并获取结果,有返回值
exec(): 执行python代码,但没有返回值
s = 'print(123)'
r =compile(s,'<string>','exec') #中间字符串必须指定
exec(r) print(exec('7+9+8')) #没有返回值为None
ret = eval('7+9+8')
print(ret) 123
None
24
divmod(): 得到商和余数,一般用于分页标识
r = divmod(97,10) #97行,每页10行
print(r)
print(r[0])
print(r[1]) (9, 7) #分9页,余7行
9
7
isinstance(): 判断对象是否为某个类的实例
s = [11,22,33]
r = isinstance(s,list)
print(r) True
filter() : 函数,可迭代的对象,给定一个对象的序列或函数,每个序列元素都通过过滤器筛选,保留函数返回值为True的对象。
def f2(a):
if a > 22:
return True
li = [11,22,33,44,55]
ret = filter(f2,li)
print(list(ret)) #lambda案例:
f1 = lambda a: a > 30 #不成立即为False
ret = f1(10)
print(ret) li = [11,22,33,44,55]
result = filter(lambda a:a>33, li)
print(list(result)) [33, 44, 55]
False
[44, 55]
map(): 与filter相似,map()将函数调用映射到每一个序列的元素上,并返回一个包含所有返回值的列表。可实现for 循环
li = [11,22,33,44,55]
def f2(a):
return a + 100 #循环每一个元素并加100
result1 = map(f2,li)
print(list(result1)) #返回列表必须指定list result2 = map(lambda a:a - 10, li)#lambda用法
print(list(result2)) [111, 122, 133, 144, 155]
[1, 12, 23, 34, 45]
(二)装饰器:
可称为在函数调用上的一种修饰,当声明一个函数或者方法时,才会应用额外的调用。
装饰器的格式:
@ + 函数名
def 函数名(参数):
@开头,装饰器的函数名和参数(可选参数),接着装饰器声明的是被修饰的函数和装饰函数的可选参数
def outer(func):
def inner():
print('log')
return func()
return inner() @outer
def f1():
print("F1") @outer
def f2():
print("F2") @outer
def f100():
print("F100") log
F1
log
F2
log
F100
一个实际例子:
from time import ctime,sleep #调用模块 def time_func(func): #定义时间函数装饰器并定义内容函数tm_func
def tm_func():
print('[%s] called' % (ctime())) #输出当前时间戳
return (func)
return tm_func()
@time_func #应用空函数体定义foo()函数并用time_func修饰
def foo():
pass
foo()
sleep(2) #第一个函数执行后等待2s后执行第二个函数
@time_func #定义第二个函数修饰
def foo1():
print('调用成功') #输出结果
foo1() [Tue May 31 11:59:37 2016] called
[Tue May 31 11:59:39 2016] called
调用成功
后续内容下节补充。。。。谢谢
python之函数的更多相关文章
- python的函数
函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...
- python strip()函数 介绍
python strip()函数 介绍,需要的朋友可以参考一下 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除 ...
- python split()函数
Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...
- Python数学函数
1.Python数学函数 1.abs(x):取绝对值,内建函数 2.math.ceil(x):向上取整,在math模块中 3.cmp(x,y):如果 x < y ,返回-1:如果 x == y ...
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- Python之函数与变量
本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有 ...
- Python基础-函数篇
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 函数与函数式编程 1.面向对象: 华山派-- ...
- 【C++实现python字符串函数库】strip、lstrip、rstrip方法
[C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...
- 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith
[C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...
- 【C++实现python字符串函数库】一:分割函数:split、rsplit
[C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...
随机推荐
- IE10开始支持CSS3 Transitions, Transforms 和 Animations
这是一个好消息,微软公开说明IE10预览版已经支持CSS3属性 Transitions, Transforms 和 Animations,你可以直接写transitions,而不是加个恶心的前缀-ms ...
- swift上传头像
很久没有写博客了,今天特地写了这个,也是一边仿照别人写的demo,注释部分都是需要的.需要的同学可以参考一下. @IBAction func headImageBtnPage(){ //上传头像 / ...
- WPF绘制简单常用的Path
写代码出身的我们经常需要使用一些简单 但是不是规则图形的Path 但限于美工功底有限 不知道怎么去画 下面我告诉大家一些简单的小技巧 用代码来画Path 个人还是比较喜欢用代码 因为数值控制的更精细 ...
- Matlab2015矩阵表示03
1. 矩阵表示 >>行元素分隔: 空格'space'或逗号',' >>列分隔: 分号或回车换行符 2. 冒号表达式 1) start:end 2) start: step : ...
- 【转】Java中try catch finally语句中含有return语句的执行情况(总结版)
Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有r ...
- JQUERY 测验
1.下面哪种说法是正确的? 您的回答:jQuery 是 JSON 库 正确答案:jQuery 是 JavaScript 库 2.jQuery 使用 CSS 选择器来选取元素? 您的回答:错误 正确答案 ...
- mysql中bit_count和bit_or函数的含义
翻阅mysql手册时,看到有个示例使用了bit_or方法来去除重复的数据,一开始没看明白,后来看明白之后感觉非常巧妙.示例要实现的功能就是计算每月有几天有访问,先把示例摘录在这里. 1 2 3 4 5 ...
- python3--函数(函数,全局变量和局部变量,递归函数)
1.1函数 1.1.1什么是函数 函数就是程序实现模块化的基本单元,一般实现某一功能的集合.函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能, ...
- bootstrap 水平表单
<form class="form-horizontal" role="form"> <div class="form-group& ...
- jquery实现简单瀑布流布局(续):图片懒加载
# jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...