1.5.5 Python内置函数

本文深入讲解Python中的内置函数,包括locals(), globals(), eval, exec, compile, print, input, type, hash, open, import, callable, dir, int, divmod, min, max, sum, round, pow, reversed, slice, format, bytes, repr, set, frozenset, enumerate, all, any, zip, sort, sorted, map, filter等。通过实例演示每个函数的使用方法。

点击跳转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 sys

for 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 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, 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是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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值