Python内置函数

coding:utf-8
内置函数操作
!usr/bin/env 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(789)")#吧字符串转换成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 sys
for 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,end='', file=sys.stdout, flush=True)

import sys
for i in range(0, 101, 4):
    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()

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.num
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是False

print(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*x
print(list(map(pow2,l)))


12.filter():从一个列表当中找到所有符合筛选条件的,在组成一个新列表
def aaa(x):
    return x%2==1
ret=list(filter(aaa,[1,2,54,3,6,8,17,9]))
print(ret)
posted @ 2019-09-17 22:02  kolane  阅读(133)  评论(0编辑  收藏  举报