鱼C论坛

 找回密码
 立即注册
查看: 966|回复: 15

[已解决]问题求助 输出类型判断

[复制链接]
发表于 2020-5-16 17:44:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import openpyxl
update_book = openpyxl.load_workbook(r'C:\Users\Administrator\Desktop\新建文件夹\1111.xlsx')
update_sheet = update_book.get_sheet_by_name('5月下旬')
for each_wall in update_sheet['b4':'b103']:
    print(type(each_wall))
这个类型是元组,打印each_wall.value报错
import openpyxl
wb2 = openpyxl.load_workbook('人员名单.xlsx')
ws2 = wb2.active
for each in ws2['a']:
    print(each.value)
这个打印each.value就正常
咋回事  个人觉得两个代码一样的,值为啥一个能打印一个打印不了呢
最佳答案
2020-5-16 17:47:10
这咋能一样呢
你打印一下each的类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-16 17:47:10 | 显示全部楼层
这个类型是元组,打印each_wall.value报错
你都知道是元组了还打印each_wall.value?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 17:47:10 | 显示全部楼层    本楼为最佳答案   
这咋能一样呢
你打印一下each的类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 17:53:48 | 显示全部楼层
qiuyouzhi 发表于 2020-5-16 17:47
这咋能一样呢
你打印一下each的类型

我怎么觉得each和each_wall的类型应该是一样的呢  两个的值应该都能输出呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 17:55:21 | 显示全部楼层
水爱冰的泪 发表于 2020-5-16 17:53
我怎么觉得each和each_wall的类型应该是一样的呢  两个的值应该都能输出呀

type(each)
<class 'openpyxl.cell.cell.Cell'>
type(each_wall)
<class 'tuple'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 17:56:14 | 显示全部楼层
水爱冰的泪 发表于 2020-5-16 17:53
我怎么觉得each和each_wall的类型应该是一样的呢  两个的值应该都能输出呀

type(each)
<class 'openpyxl.cell.cell.Cell'>
type(each_wall)
<class 'tuple'>
求告知真相
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 17:58:33 | 显示全部楼层
水爱冰的泪 发表于 2020-5-16 17:56
type(each)

type(each_wall)

你看,第一个是openpyxl.cell.cell.Cell,这个东西有一个value的属性
而第二个是元组,肯定没有value属性
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 18:02:37 | 显示全部楼层
qiuyouzhi 发表于 2020-5-16 17:58
你看,第一个是openpyxl.cell.cell.Cell,这个东西有一个value的属性
而第二个是元组,肯定没有value属 ...

我怎么感觉这两个代码实质是一样的呀  为啥结果差别这么大呢
都是一个表格的a列或者a列的一个切片的遍历   有点想不明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 18:06:27 | 显示全部楼层
水爱冰的泪 发表于 2020-5-16 18:02
我怎么感觉这两个代码实质是一样的呀  为啥结果差别这么大呢
都是一个表格的a列或者a列的一个切片的遍历 ...

切片和方法的区别我想你能搞明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 18:11:08 | 显示全部楼层
help(openpyxl)看帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 18:41:40 | 显示全部楼层
qiuyouzhi 发表于 2020-5-16 17:47
这咋能一样呢
你打印一下each的类型

import openpyxl
wb2 = openpyxl.load_workbook('人员名单.xlsx')
ws2 = wb2.active
for each in ws2['a']:
    print(each.value)
    print(type(each))
for each in ws2['a1':'a6']:
    print(each.value)
    print(type(each))
你好 能告诉我这两个for循环的区别吗?为啥一个有值,一个没有,谢谢了 实在想不明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 18:51:06 | 显示全部楼层
水爱冰的泪 发表于 2020-5-16 18:41
import openpyxl
wb2 = openpyxl.load_workbook('人员名单.xlsx')
ws2 = wb2.active
>>> ws2['a']
(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.A2>, <Cell 'Sheet1'.A3>)
>>> ws2['a1':'a3']
((<Cell 'Sheet1'.A1>,), (<Cell 'Sheet1'.A2>,), (<Cell 'Sheet1'.A3>,))
第二个返回的是一个嵌套元组,而第一个返回的只是一个元组。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 20:38:43 | 显示全部楼层
qiuyouzhi 发表于 2020-5-16 18:51
第二个返回的是一个嵌套元组,而第一个返回的只是一个元组。

哦 原来是这样呀   好神奇  真的是感觉两个代码没啥区别   怎么会这样呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 20:39:06 | 显示全部楼层
水爱冰的泪 发表于 2020-5-16 20:38
哦 原来是这样呀   好神奇  真的是感觉两个代码没啥区别   怎么会这样呢

嗯嗯,得多看细节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 20:40:19 | 显示全部楼层
qiuyouzhi 发表于 2020-5-16 20:39
嗯嗯,得多看细节

要认清里面内部实质  真的有点困难  对于我们这些初学者来说  真的看不出其中的猫腻  谢谢你  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 20:40:36 | 显示全部楼层
水爱冰的泪 发表于 2020-5-16 20:40
要认清里面内部实质  真的有点困难  对于我们这些初学者来说  真的看不出其中的猫腻  谢谢你

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-21 06:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表