判断Python中的Nonetype类型


Posted in Python onMay 25, 2021

今天写了个爬虫,在抓取数据的时候遇到一个问题,我觉得如果不注意,这个问题很容易被忽略,所以特意在博客记录下:

问题描述:

比如,我在提取信息时,这样判断类型:

type(answers[0].find_all("table")[0].string)

得到的结果为:

NoneType

所以,我就想,条件过滤的时候用is not 或者 != 就可以过滤了,比如这样尝试的时候:

type(answers[0].find_all("table")[0].string) is '''NoneType'''

结果我得到的是:

False

接下来,我用==来判断也是False,我就猜想,难到不能用type()来判断?

经过查找,发现Nonetype类型,其实就是值为None,所以直接判断值就可以了,比如这样:

answers[0].find_all("table")[0].string is None

得到的结果:

True

ok,到这里,问题就解决了,列表推导式直接得到结果:

answer_table  = [x.find_all("table")[0].string.strip() for x in answers if x.find_all("table")[0].string is not None]

answer_table 结果:

['水箱内部有没有通过,没有的话就是水箱堵了。', '我的小松也一样', '电控系统出现故障,电脑板传出的信号与实际动力不同,大泵与发动机动力不匹配发动机负荷重所以高温,动作慢', '换个新水箱,多页风扇', '这就是把水箱盖打开了,水流出来了,加点油门下水管就吸遍了。', '水箱堵了,拿下去专业悍水箱那输通,就ok', '如果缸垫没冲,就换水箱,我也准备换水箱。']

补充:Python对<type 'NoneType'>数据类型的处理

Python对象的概念

Python中,万物皆对象,所有的操作都是针对对象的,那什么是对象,5是一个int对象,‘oblong'是一个str对象,异常也是一个对象,抽象一点是,人,猫,狗也是一个对象

那对于一个对象,它就有包括两方面的特征:

属性:去描述它的特征

方法: 它所具有的行为

所以,对象=属性+方法 (其实方法也是一种属性,一种区别于数据属性的可调用属性)

把具有相同属性和方法的对象就可以归为一类,即Classl。类就好比是一张蓝图,使用一个类可以创建多个对象实例 ,即人,猫,狗都属于哺乳动物类

类是对象的抽象化,对象是类的实例化。

类不代表具体的事物,而对象表示具体的事物

类也是有属性和方法的。

数据类型也是对象

实际上Pyhton在面向对象程序设计时,才会有对象这个概念,而在面向过程型程序设计时,我们讨论最多的就是数据类型。

Python提供的基本数据类型主要有:布尔类型、整型、浮点型、字符串、列表、元组、集合、字典等… …

数据类型也可以看做是一个”类“

每一种数据类型都是一个对象,也具有其自己的属性和方法

Python中的None与 NULL(即空字符)的区别

None是Python的特殊类型,NoneType对象,它只有一个值None.

它不支持任何运算也没有任何内建方法。

None和任何其他的数据类型比较永远返回False。

None有自己的数据类型NoneType。

你可以将None复制给任何变量,但是你不能创建其他NoneType对象。

是不同的一种数据类型:

>>>type(None)
<class 'NoneType'>

表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

>>>type('')
<class ''str'>

你可以将None赋值给任何变量,也可以将任何变量赋值给一个None值的对象

判断的时候 均是False

>>> ff=None
>>> if ff:
    print('ff is define')

执行结果:无打印!

属性不同

使用dir()函数返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。

dir(None)
['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
dir('')
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

python 中is和= = 的区别

Python中的对象包含三要素:id、type、value,其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值。

is判断的是a对象是否就是b对象,是通过id来判断的;

==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。

python中的not代表什么

在python中not是逻辑判断词,用于布尔型True和False,not True为False,not False为True.

pythond对变量是否为None的判断

python对变量是否为None的判断,有三种主要的写法:

第一种是if x is None;

第二种是 if not x:;

第三种是if not x is None(这句这样理解更清晰if not (x is None)) 。

在Python中 None, False, 空字符串”“, 0, 空列表[], 空字典{}, 空元组()都相当于False 。

<strong>not None == not False == not '' == not 0 == not [] == not {} == not ()</strong>

foo is None 和 foo == None的区别

>>> class foo(object):
    def __eq__(self, other):
        return True

>>> f = foo()
>>> f == None
True
>>> f is None
False

>>> list1 = [1, 2, 3]
>>> list2 = [1, 2, 3]
>>> list1==list2
True
>>> list1 is list2
False

另外:

(ob1 is ob2) 等价于 (id(ob1) == id(ob2))

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python私有属性和方法实例分析
Jan 15 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
python opencv3实现人脸识别(windows)
May 25 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
什么是python类属性
Jun 10 Python
Django contrib auth authenticate函数源码解析
Nov 12 Python
pycharm 的Structure界面设置操作
Feb 05 Python
如何用Python编写一个电子考勤系统
Feb 08 Python
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
python编写五子棋游戏
浅谈python数据类型及其操作
对Keras自带Loss Function的深入研究
May 25 #Python
pytorch中的model=model.to(device)使用说明
May 24 #Python
解决pytorch-gpu 安装失败的记录
May 24 #Python
如何解决.cuda()加载用时很长的问题
You might like
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
php 无限分类的树类代码
2009/12/03 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python实现的解析crontab配置文件代码
2014/06/30 Python
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
浅谈Python中的bs4基础
2018/10/21 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
基于Python绘制个人足迹地图
2020/06/01 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
Python的信号库Blinker用法详解
2020/12/31 Python
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
会计毕业生求职简历的自我评价
2013/10/20 职场文书
我的求职择业计划书
2014/04/04 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS