鱼C论坛

 找回密码
 立即注册
查看: 899|回复: 7

[技术交流] 关于字符串,字典,列表的判断问题

[复制链接]
发表于 2018-8-13 12:28:39 | 显示全部楼层 |阅读模式

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

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

x
定义一个这样的函数:给定一个值a并判断它的类型,当它既不是字典,也不是列表时,打印
我先是这样写的
if  type(a) is not dict and list:
        print(a)
这么些有错误,因为如果a是字典或者列表,它肯定满足不了(dict and list),得到false,所以not后将返回true,而不是以为的false

改了一下
if  type(a) is not dict or list:
        print(a)
还是有错,因为当a是一个列表时,它满足这个条件(is not dict)(可能是因为它在前面所以先判断?)并返回true,而当它是一个字典时idle仿佛不知道该怎么判断一样,直接忽略is后面内容,返回的是a的类型,相当于type(a)


所以应该将它们分开写,就是写成 type(a) is not dict and type(a) is not list
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-13 13:24:13 | 显示全部楼层
用个括号给括起来就行了,不用分开写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-13 13:35:50 | 显示全部楼层
alltolove 发表于 2018-8-13 13:24
用个括号给括起来就行了,不用分开写

不行的
2018-08-13_133501.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-13 13:45:50 | 显示全部楼层
asdsa.png

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

使用道具 举报

 楼主| 发表于 2018-8-13 14:10:13 | 显示全部楼层

你再把a换成list试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-13 14:11:17 | 显示全部楼层
蛊惑的心 发表于 2018-8-13 14:10
你再把a换成list试试

type(a) is not (dict or list)返回true
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-13 15:35:53 | 显示全部楼层
哦,还真是,改成
  1. type(a) is (not list or not dict)
复制代码
这样就没问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-13 19:18:15 | 显示全部楼层
alltolove 发表于 2018-8-13 15:35
哦,还真是,改成这样就没问题了

有问题,当a是字符串时,按照要求返回true,但你给的返回false
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 12:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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