码迷,mamicode.com
首页 > 其他好文 > 详细

04_内置函数(二)

时间:2016-05-30 23:22:17      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

内置函数(二)

1.1 callable()

功能:函数是否可调用

示例1:

def f1():
    pass
f1()

f2 = 123
f2()

# 输出结果
TypeError: ‘int‘ object is not callable

示例2:

def f1():
    pass
# f1()

f2 = 123
# f2()

print(callable(f1))
print(callable(f2))

# 输出结果
True
False

1.2 chr()

功能:数字转字母,返回对应的ASCII码。

r = chr(65)
print(r)

# 输出结果
A

1.3 ord()

功能:字母转数字

n = ord("B")
print(n)

# 输出结果
66

1.4 range()

功能:取值范围

示例1:随机生成6位验证码 字母

# 使用前必须导入random
import  random
# 定义一个空列表
li = []
# 循环6次,取值范围6位
for i in range(6):
    # 设置随机数范围65-91
    temp = random.randrange(65, 91)
    # 生成的数字转换成字母 
    c = chr(temp)
    # 将取到的结果添加到列表li内
    li.append(c)
# li = ["c","b","a"]  #cba  合并
# 拼接字符串join
result = "".join(li)
# 打印结果
print(result)

示例2:随机6位验证码 完整版 字母+数字

# 使用前必须导入random
import  random
# 定义空列表
li = []
# 循环6次,取值范围6位
for i in range(6):
    # 设定r为随机生成数,范围0-5
    r = random.randrange(0, 5)
    # 当 r=2 或 r=4 时
    if r == 2 or r == 4:
        # num为0-10随机生成数
        num = random.randrange(0, 10)
        # 添num值到列表
        li.append(str(num))
    # 当 r=0,1,3,4时
    else:
        # temp为A-Z的随机生数65-91
        temp = random.randrange(65, 91)
        # 转换获取到的数字为字母
        c = chr(temp)
        # 添加字母到列表
        li.append(c)
# li = ["c","b","a"]  #cba  合并
# 拼接字符串join
result = "".join(li)
# 打印结果
print(result)

1.5 compile()

功能:将字符串编译成Python代码

# single 单行
# eval 表达式
# exec python

s = "print(123)"
# 将字符串编译成python代码
r = compile(s, "<string>","exec")
# 执行代码
exec(r)

# 输出结果
123

1.6 eval()

功能:执行表达式,获取结果,有返回值

s = "8*8"
ret = eval(s)
print(ret)

# 输出结果
64

1.7 exec()

功能:执行python代码,接收代码或者字符串,无返回值

exec("7+9+8")

 

小结:compile,exec,eval

compile():转换,将字符串,编译成python代码
eval():执行表达式,获取结果,有返回值
exec():执行python代码,无返回值

1.8 dir()

功能:快速查看一个对象提供了哪些功能

# 查看列表提供了哪些功能
print(dir(list))

# 输出结果
[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘clear‘, ‘copy‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]

1.9 help()

功能:查看帮助,功能详细

1.10 divmod()

功能:比较x,y,返回商和余数,返回类型为tuple

例:共:97条,每页显示10条,需要多少页

r = divmod(97,10)
print(r)

# 输出结果
(9, 7) 

1.11 isinstance()

功能:用于判断对象是否是某个类的实例

# 对象是类的实例
s = "alex"
r = isinstance(s, str)
print(r)

# 输出结果
True

1.12 filter()

功能:用于过滤列表中的一些元素

格式:filter(函数,可迭代的对象)

示例:li = [11, 22, 33, 44, 55, ],筛选大于22的

1.12.1 编写函数

# 定义函数f1
def f1(args):
    # 设定空列表
    result = []
# for循环 for item in args: # 判断item是否大于22 if item > 22: # 大于22添加到result列表 result.append(item) # 返回result值 return result li = [11, 22, 33, 44, 55, ] # 执行函数 ret = f1(li) print(ret) # 输出结果 [33, 44, 55]

1.12.2 filter函数

# 定义函数f2
def f2(a):
    if a > 22:
        return True

li = [11, 22, 33, 44, 55, ]
# filter内部循环第二个参数,让每个循环元素执行函数,如果函数的返回值True,表示元素合法
ret = filter(f2, li)
print(list(ret))

# 输出结果
[33, 44, 55]

1.12.3 通过lambda表达式实现

lambda回顾 自动return

f1 = lambda a: a > 30
ret = f1(90)
print(ret)

# 实现筛选,简化表达式
li = [11, 22, 33, 44, 55, ]
result = filter(lambda  a: a > 22, li)
print(list(result))

# 输出结果
[33, 44, 55]

1.13 map()

功能:将一个列表映射到另一个列表

格式:map(函数, 可迭代的对象(可以循环的东西))

示例,列表里的数分别增加100

map方法

# 列表
li = [11, 22, 33, 44, 55, ]
# 定义函数f2,参数a
def f2(a):
    # 函数体,a + 100并返回值
    return a + 100
# 运行函数,li列表内的所有元素循环作为f2函数的参数a并执行f
result = map(f2, li)
print(list(result))

# 输出结果
[111, 122, 133, 144, 155]

lambda方法

li = [11, 22, 33, 44, 55, ]
result = map(lambda a: a + 100 , li)
print(list(result))

# 输出结果
[111, 122, 133, 144, 155]

1.14 globals(),locals()

globals 所有的全局变量

locals 所有的局部变量

NAME = "ALEX"  # 全局变量
def show():
    a = 123  # 局部变量
    c = 123
    print(globals())
    print(locals())
show()

# 输出结果
# 全局变量
{‘__cached__‘: None, ‘__name__‘: ‘__main__‘, ‘__package__‘: None, ‘__loader__‘: <_frozen_importlib_external.SourceFileLoader object at 0x000000DB870C5940>, ‘NAME‘: ‘ALEX‘, ‘show‘: <function show at 0x000000DB8712E510>, ‘__file__‘: ‘ old_dict.__delitem__(host)\n\nprint(u"====信息更新完毕====")\nprint(old_dict)\n‘}

# 局部变量
{‘a‘: 123, ‘c‘: 123}

1.15 hash()

功能:转换哈希值,一般用于保存字典里的key

s = "ffff"
print(hash(s))

# 输出结果
6225191154271087305

1.16 len()

功能:字符长度

python 3里默认按字符()

s = "李杰"
print(len(s))

python2.7里默认按字节

s = "李杰"
b = bytes(s, encoding="utf-8")
print(len(b))

1.17 sum()

功能:数字序列的元素相加

r = sum([11,22,33,44,])
print(r)

# 输出结果
110

1.18 memoryview()

说明:内存地址相关的一个类

1.19 object()

说明:是所有类的父类

1.20 pow()

功能:方法返回xy(x的y次方)的值

# 需要导入math
import math
print(math.pow(2, 3))

# 输出结果
8.0

1.21 property()

说明:特性(面向对象)

1.22 repr()

功能:repr执行类里的__repr__

r = repr("alex")
print(r)

# 输出结果
‘alex‘

1.23 reversed()

功能:反转

print(list(reversed([‘NB‘,‘is‘,‘alex‘])))

# 输出结果
[‘alex‘, ‘is‘, ‘NB‘]

1.24 round()

功能:四舍五入

格式:round(数字,保留位数)

print(round(5.44, 1))
print(round(5.77, 1))

# 输出结果
5.4
5.8

1.25 slice()

功能:切片

s = "sssssssss"
print(s[0:2:2])

# 输出结果
s

1.26 sorted()

功能:排序

li = [11, 44, 22, 33,]
print(li)
li.sort()
print(li)

# 输出结果
[11, 44, 22, 33]
[11, 22, 33, 44]

1.27 zip()

功能:接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)

l1 = ["alex", 11, 22, 33, ]
l2 = ["is", 11, 22, 33, ]
l3 = ["nb", 11, 22, 33, ]
r = zip(l1, l2, l3)
# print(list(r))
temp = list(r)[0]
ret = " ".join(temp)
print(ret)

# 输出结果
alex is nb

  

04_内置函数(二)

标签:

原文地址:http://www.cnblogs.com/liangdalong/p/5540714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!