python(六)内置函数

时间:2022-02-10 04:28:07

一、函数知识补充

函数不设置值,默认返回None;函数中参数都是按引用传递,函数里修改了参数,原始参数也会修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
li = [11, 22, 33, 44]
 
def f1(arg):
 
    arg.append(55)
 
ret = f1(li)
 
print(ret)
 
# 执行结果: None
 
#把li重新赋值,f1函数没有设置返回值,默认返回None,所以结果应该是None
 
print(li)
 
# 执行结果:[11, 22, 33, 44, 55]
 
# 说明:函数中参数都是按引用传递。如果你在函数里修改了参数,那么原始的参数也被改变了。

二、内置函数

callable(object)

中文说明:检查对象object是否可调用。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

注意:类是可调用的,而类的实例实现了__call__()方法才可调用。

示例:

1
2
3
4
5
6
7
8
9
>>> def f1(arg):
...     arg.append(55)
...
>>> f2 = 11
>>>
>>> print(callable(f1))
True
>>> print(callable(f2))
False

chr(i)

中文说明:返回整数i对应的ASCII字符。与ord()作用相反。

参数x:取值范围[0, 255]之间的正数。

1
2
3
4
5
6
>>> n = 66
>>> print(chr(n))
B
>>> n = 67
>>> print(chr(n))
C

ord(i)

中文说明:以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值

1
2
3
4
>>> ord("J")
74
>>> ord("K")
75

ord()与chr()使用实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
生成随机验证码:
import random
li = []
while True:
    for i in range(6):
        temp = random.randrange(65,91#随机生成65-90的数字,这是ASCII中A-Z中的对应数字
        c = chr(temp)                   #通过chr()方法将数字转换成字母
        li.append(c)                    #加入到列表中,生成一个六位的验证码
    result = "".join(li)                #通过join转换成字符串输出
    print(result)
 
#随机验证码优化,字母和数字随机出现
import random
li = []
for i in range(6):                     #验证码是六位循环6次,通过append方法生成六个字母或数字
    r = random.randrange(0, 5)         #r随机生成0-5的数字,只要r等于2或4,则产生数字,否则则产生字母。
    if r == 2 or r == 4:               #因为每次随机生成的数可能是2或4,故此每一位都有可能生成数字或字母。
        num = random.randrange(0, 10)
        li.append(str(i))
    else:
        temp = random.randrange(65, 91)
        c = chr(temp)
        li.append(c)
result = "".join(li)
print(result)

compile() 

中文说明:把字符串编译城python代码

eval() 

中文说明:执行表达式,有返回值

exec()

中文说明:执行python代码或字符串没有返回值,如果接收的是字符串就先编译再执行,如果是python代码就直接执行

eval和exec实例:

1
2
3
4
>>> print(exec("7+8"))
None
>>> print(eval("7+8"))
15

dir()

中文说明:快速查看对象提供了哪些功能

实例:

1
2
3
>>> dir(list)
 
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

help()

中文说明:显示更详细的帮助信息

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> help(dict)
 
Help on class dict in module __builtin__:
 
 
 
class dict(object)
 
 dict() -> new empty dictionary
 
 dict(mapping) -> new dictionary initialized from a mapping object's
 
 |      (key, value) pairs
 
 dict(iterable) -> new dictionary initialized as if via:
 
 |      d = {}
 
 |      for k, v in iterable:
 
 |          d[k] = v

isinstance()

中文说明:判断对象是不是某个类的实例,如果是,则返回True。不是,返回False

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
li = [11, 22, 33, 44, [55, 66, 77, 88]]
 
for i in li:
 
    if isinstance(i,list):
 
        for v in i:
 
            print(v)
 
    else:
 
        print(i)

说明:嵌套列表,想要显示11,22,33,44,55,66,77,88这样的结果只一个for循环是不行的,这时可以判断如果i的值是list,就再接一个for循环输出。

divmod()

中文说明:求出a除以b的商和余数,并返回到一个集合中。

实例:

1
2
3
4
5
6
r = divmod(97, 10)
print(r[0])
print(r[1])
r,r1 = divmod(97,10)
print(r)
print(r1)

例如在浏览博客的时候需要对文章进行分页显示,97篇文章,每页显示10篇,通过divmod可以求出商和余数,如果余数为0则页数为商,否则页数就是商加1

filter()

中文说明:循环循环第二个参数,让每个循环元素执行函数,如果函数返回值True,表示元素合法。

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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]
提示:filter(f2,li) 第二个参数li可以是列表、字典等可迭代的数据,循环第二个参数,把值传给
第一个参数(函数)里去。可以用来筛选listdict中符合条件的内容。
#lambda表达式自动return
f1 = lambda a: a > 30
ret = f1(10)
print(ret)
li = [11, 22, 33, 44, 55]
result = filter(lambda a: a > 33, li)
print(list(result))

map()

中文说明:map(函数,可迭代的对象(可以for循环的东西)),想对列表字典等进行批量处理的时候,比如统一加100等

实例:

1
2
3
4
5
6
7
8
9
def f1(a):
    return a + 100
li = [11, 22, 33, 44, 55]
n = (map(f1, li))
print(list(n))
lambda 表达式使用:
li = [11, 22, 33, 44, 55]
n = map(lambda a: a + 100, li)
print(list(n))

filter和map的区别:

filter:函数返回True,将元素添加到结果中

map: 将函数返回值添加到结果中

hash() 

中文说明生成一个值的hash值

例:

1
2
3
s = "kkk"
print(hash(s))
dic = {"akdflakjdfklajlkjakldflllllllllllldjjjjjjjjjjjjjjsssssss" : 1}

提示:在内存中存的时候不会把这么长的key存进去,而是把key求出hash值,存到内存中。所有语言都是这样用的。

max()        最大值

sum()        求和

min()        最小值

reversed()    反转

round()      四舍五入

slice()      切片

sorted(li)    排序

在python2中,len()求字符串长度,是通过字节的方式,在python3中是通过字符的方式。

1
2
3
4
5
6
s = "李杰"
print(len(s))
#python3中通过字节的方式求长度。
s = "李杰"
b = bytes(s, encoding='utf-8')
print(len(b))

python(六)内置函数的更多相关文章

  1. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

  2. python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理

    python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...

  3. python基础——内置函数

    python基础--内置函数  一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...

  4. 如何查看Python的内置函数

    经常调用的时候不知道python当前版本的内置函数是哪些,可以用下面的指令查看: C:\Users\Administrator>python Python 2.7.11 (v2.7.11:6d1 ...

  5. Python的内置函数

    python的内置函数一共有68个,下面将简单介绍各个函数的功能. abs() dict() help() min() setattr() all() dir() hex() next() slice ...

  6. python print()内置函数

    啦啦啦啦啦啦,我又来了,学习任何东西都得坚持,我一定的好好加油!!! 今天来说说print()函数,前边我们已经用过好好多次啦,现在来学习哈吧!!! Python的内置函数,print() print ...

  7. Python入门-内置函数一

    什么是内置函数?就是python给你提供的拿来直接用的函数,比如print,input等等,截止到python版本3.6.2 python一共提供了68个内置函数,他们就是python直接提供给我们的 ...

  8. Python 集合内置函数大全(非常全!)

    Python集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员   s ...

  9. Python字典内置函数和方法

    Python字典内置函数和方法: 注:使用了 items.values.keys 返回的是可迭代对象,可以使用 list 转化为列表. len(字典名): 返回键的个数,即字典的长度 # len(字典 ...

随机推荐

  1. 解决php deprecated 的问题

    Deprecated :意思是“不推荐” php 5.3 从一方面来讲,可以说在07年计划PHP6的中的一个pre版本,增加了很多功能,统一了很多语法,使PHP变得更加强大与简洁. 说到统计架构规划, ...

  2. CSS3之绽放的花朵&lpar;网页效果--每日一更&rpar;

    今天,带来的是纯CSS3打造的效果--绽放的花朵. 先来看效果吧:亲,请点击这里 这是纯CSS3样式打造的效果,关键是采用了animation属性和transform属性.详细请看下面代码. HTML ...

  3. php&period;ini

    [PHP];;;;;;;;;;;;;;;;;;;; About php.ini   ;;;;;;;;;;;;;;;;;;;;; PHP's initialization file, generally ...

  4. hdu1115&lpar;计算多边形几何重心&rpar;

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115 题意:给出一些点,求这些点围成的多边形的重心: 思路: 方法1:直接分别求所有点的x坐标的平均值 ...

  5. 10 个超酷的加载中的 Gif 动画

    #1: Calming cat loading gif #2: Stylish loading gif #3: Shape changing loading gif #4: Loading gif f ...

  6. Eureka 的 Application Client client的执行演示样例

            上篇以一个 demo 演示样例介绍了 Eureka 的 Application Service 客户端角色.今天我们继续了解 Eureka 的 Application Client 客 ...

  7. hadoop单机环境搭建

    [在此处输入文章标题] Hadoop单机搭建 1. 工具准备 1) Hadoop Linux安装包 2) VMware虚拟机 3) Java Linux安装包 4) Window 电脑一台 2. 开始 ...

  8. go标准库的学习-hash

    参考:https://studygolang.com/pkgdoc 导入方式: import "hash" hash包提供hash函数的接口. type Hash type Has ...

  9. C&plus;&plus;中数组定义及初始化

    一.一维数组 静态 int array[100]; 定义了数组array,并未对数组进行初始化 静态 int array[100] = {1,2}: 定义并初始化了数组array 动态 int* ar ...

  10. python的WSGI接口

    WSGI:Web Server Gateway Interface. WSGI是为python语言定义的web服务器和web应用程序或框架之间的一种简单而实用的接口.wsgi是一个web组件的接口规范 ...