python的excel函数_Python3 内置函数及excel操作

exec是通过命令行执行,类似于print

exec和eval的区别:

1、eval有返回值,exce没有返回值

2、eval不可以执行复杂代码 会报错,但是exec可以执行复杂代码

python一些常用的内置函数及作用请见以下代码,值得一提的是eval和exec的区别,最大的一个区别是eval会返回代码运行的值,类似于函数自带了一个return功能,但是exec不会,它只管执行代码,等于是函数没有return值,默认返回了None;还有一个区别是exec可以执行复杂的代码,类似于命名函数,定义对象等,但eval不行。通过exec可以执行动态Python代码,类似Javascript的eval功能;而Python中的eval函数可以计算Python表达式,并返回结果

copycode.gif

1 lis=[1,4,3,8,2,9,10,0]

2 print(all(lis))#判断可迭代对象里头是否存在不为真的元素,如果全为真,则显示True,如果存在不为真的元素则返回False

3 print(any(lis))#判断可迭代对象里头是否存在为真的元素,如果存在为真的元素则返回True,否则False

4 print(bin(10).replace('0b',''))#10进制转换为二进制,后面的replace是用空格取代二进制的前缀:ob

5 print(bool({}))#把一个对象转换成布尔类型(True,False),非空即真,非0即真

6 from hashlib import md5

7 m=md5()

8 print(dir(m))#dir列出m的方法

9 eval('print("haha")')

10 exec('print("haha")')

11 b=exec('[1,2,3]')#exec执行代码时,不返回值,不能赋值,这里b是none

12 c=eval('[1,2,3]')#eval执行代码时,返回值,多用于表达式,这里赋值成功

13 print(b)#会输出None

14 print(c)#会输出[1,2,3]

15 exec("def hs():print(123)")#可执行复杂代码,这里正常余兴

16 eval("def hs():print(123)")#不可以执行复杂代码,会报错

17 print(round(66.66666,3))#round(float,int)保留float小数的int位

18 print(sum([1,6,9]))#求和

19 print(min([1,6,9]))#取最小值

20 print(max([1,6,9]))#取最大值

21 print(hex(34523).replace('0x',''))#10进制转16进制

22 print(hash('asd'))#将一个字符串hash成数字

23 print(globals())#返回程序内所有的变量,返回的是一个字典

24 print(locals())#返回局部变量

copycode.gif

通过exec可以执行动态Python代码,类似Javascript的eval功能;而Python中的eval函数可以计算Python表达式,并返回结果,>>>可以通过右击Pycharm,选择“Execute Line in Console”来调用

>>> a = 1

>>> exec("a = 2")>>> a

2

eval有返回值,不能赋值,不能像exec那样进行复杂的运算。

a=2eval('a')2

eval的用法:同exec一样,eval也可以使用命名空间:

>>> result = eval('2+3')>>>result5

>>> scope={}>>> scope['a'] = 3

>>> scope['b'] = 4

>>> result = eval('a+b',scope)>>>result7

接下来我们详细看下filter和map这两个内置函数,map这个函数会改变原来的list的元素,这里只的改变有:修改、删除,而filter这个函数只能删除、不能修改元素,还有一点需要注意,这两个函数执行后都是返回一个内存地址,需要用lsit强制转换才可以得到list数据:

copycode.gif

lis=['123',456,{"age":18},0,[],(1,2,3),(),{},'False']

def my_char(var):

return var

res=filter(my_char,lis)#filter(fun,list),list只要是可迭代类型即可,循环list里的值,调用fun函数,当fun函数返回为真时,保留list的迭代值,否则,删掉

print(list(res))#res得到的是一个对象,需要list方法接收值

def maps(var):

return str(var)+'值都变咯'

res1=map(maps,lis)#map(fun,list),list只要是可迭代类型即可,循环list里的值,调用fun函数,fun函数返回值作为新值保存到rese1对象里

print(list(res1))

copycode.gif

接下来mark一下excel的操作:

copycode.gif

1 import xlrd,xlwt,xlutils,os

2 from xlutils.copy import copy

3 book=xlrd.open_workbook('stu.xls')#打开一个excel文件对象

4 sheet=book.sheet_by_name('Sheet1')#通过sheet 名称指定工作sheet

5 # sheet=book.sheet_by_index(0)#通过sheet 索引指定工作sheet

6 all_sheets=book.sheet_names()#获取所有sheet名称,返回一个list

7 print(all_sheets)

8 print(sheet.cell(0,0).value)#通过cell获取指定坐标的数据

9 print(sheet.nrows)#获取sheet页的行数

10 print(sheet.ncols)#获取sheet页的列数

11 print(sheet.row_values(0))#获取指定行数的数据

12 print(sheet.col_values(0))#获取指定列数的数据

13

14 workbook=xlwt.Workbook()#打开一个excel文件对象

15 wsheet=workbook.add_sheet('sheet1')#添加一个sheet

16 wsheet.write(0,0,'test')#写入数据

17 workbook.save('test.xls')#保存excel,后缀必须是.xls,否则报错

18

19 ubook=xlrd.open_workbook('stu.xls')#打开一个excel文件对象

20 mbook=copy(ubook)#复制读到的文件对象

21 msheet=mbook.get_sheet(0)#获取sheet页,注意这里只能用get_sheet(0)方法,指定下标

22 msheet.write(0,0,'new_data')#写入数据

23 mbook.save('new.xls')#保存数据

24 os.remove('stu.xls')

25 os.rename('new.xls','stu.xls')

copycode.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值