1.5.5|1.5.5 Python内置函数

点击跳转笔记总目录
一,Python内置函数 1.locals()和globals()

def func(): x = 1 y = 2 print(locals()) print(globals())func()

2.eval,exec,和compile
print(123) "print(456)"## 字符串 eval("print(456)")## 吧字符串转换成python代码去执行(有返回值) exec("print(7889)")## 吧字符串转换成python代码去执行(无返回值) num = eval('4+5+6')## 执行了,有返回值 print(num)num = exec('4+5+6')## 执行了,没有返回值 print(num) compile## 做编译 com = compile('1+2+3', '', mode='eval')## 节省时间 print(eval(com)) print(eval('1+2+3'))## 这句效果和上面的compile()效果一样

3.print
print('123', end='')## 不换行 print('456', end='')print(1, 2, 3) print(1, 2, 3, 4, 5, 6, sep=',')## print()函数的小例子 import time import sysfor i in range(0, 101, 2): time.sleep(0.1) char_num = i // 2## 打印多少个# per_str = '%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s' % (i, '*' * char_num) print(per_str, end='', file=sys.stdout, flush=True)import sysfor i in range(0, 101, 2): time.sleep(0.1) char_num = i // 2 per_str = '\r%s%% : %s' % (i, '*' * char_num) print(per_str, file=sys.stdout, flush=True)

4.input()
5.type()
s = '1213' print(type(s)) #输出s的类型

6.hash
print(hash('asdsffd'))## 一开始几个都是不变的,,然后重新运行一次就变了 print(hash('asdsffd')) print(hash('asdsffd')) print(hash('asdsffd')) print(hash('asdsffd')) print(hash((1, 2, 3, 4)))

7.open
## r, w, a, r +, w +, a + (都可以加b) f = open('tmp', 'r+')## r+打开文件 print(f.read(3))## 如果读了在写,追加 f.seek(5)## 如果seek指定了光标的位置,就从该位置开始覆盖这写 f.write('aaaaaa')## 如果直接写,从头覆盖 f.close()

8.import()
import os import sys import time

9.callable:查看能不能调用
print(callable(123))## 数字不能调用结果就是False print(callable(open))## 函数可以调用就返回True

10.dir 查看数据类型的方法
print(dir(__builtins__))## 看着报错,,但其实不报错 print(dir(int)) print(dir(list)) print(dir(0))## 和int一样 print(set(dir(list)) - set(dir(tuple)))

11.int()转换为int类型
num1 = int(123) num2 = int(12.3)## 强制转换成int类型 print(num1, num2)

12.取商/余
print(divmod(7, 3))

13.计算最小值
print(min(1, 2, 3, 4)) print(min([5, 6]))

13.计算最大值
print(max(1, 2, 3, 4)) print(max([5, 6]))

14.sum求和
print(sum(1, 2, 3, 4))## 出错了,参数是序列,散列不行 print(sum([5, 6])) print(sum((1, 2, 3, 4)))## 以下的两个方式是一样的 print(1 + 2) print(int(1).__add__(2))

15.round精确度
print(round(3.1415926, 2))## 保留两位

16.pow()幂运算
print(pow(2, 3)) print(2 ** 3)

17.和数据结构相关的 1.reversed()顺序的反转
l = [1, 2, 3, 4] print(list(reversed(l)))## 是生成了一个新的列表,没有改变原来的列表(以后能不用reversed就不用reversed,用reverse)

## l.reverse()#在现在的列表的基础上修改了,修改的是原来的列表 print(l)

2.slice切片
3.format()#除了格式化以外的作业
print(format('test', '<20')) print(format('test', '>40')) print(format('test', '^40'))

4.bytes
s = '你好' sb = bytes(s, encoding='utf-8') print(sb) print(sb.decode('utf-8'))sb2 = bytearray(s, encoding='utf-8') sb2[0] = 229## 修改了解就好 print(sb2.decode('utf-8')) print(sb2) print(sb2[0])

5.repr
print(repr('1234')) print(repr(1234)) print('name:%r' % ('egon'))## 你怎么传进去的就按什么格式打印出来了

6.set和frozenset(不可变的集合)就像list和tuple
7.enumerate
l = ['a', 'b'] for i in enumerate(l): print(i)for i, j in enumerate(l): print(i, j)

8.all和any
print(all([1, 2, 3])) print(all([0, 2, 3]))## 因为0是Falseprint(any([1, 2, 3])) print(any([0, 2, 3]))

9.zip()
l = [1, 2, 3] l2 = [4, 5, 6, 7, 8] print(zip(l, l2)) print(list(zip(l, l2))) l3 = {'k': 'v'} print(list(zip(l, l3)))

10.sort和sorted
l = [1, 3, 5, -2, -6] l.sort() print(l)l2 = [1, 3, 5, -2, -6] print(sorted(l2)) print(sorted(l2, key=abs)) print(sorted(l2, key=abs, reverse=True))## 默认从小到大排序,修改为True,则从大到小排序

11.map():我要对我的列表当中的每一个值去做函数里面的操作
l = [1, 2, 3, 4, 5]def pow2(x): return x * xprint(list(map(pow2, l)))

【1.5.5|1.5.5 Python内置函数】12.filter():从一个列表当中找到所有符合筛选条件的,在组成一个新列表
def aaa(x): return x % 2 == 1ret = list(filter(aaa, [1, 2, 54, 3, 6, 8, 17, 9])) print(ret)

    推荐阅读