关于Python中的None
关于Python中的None
注意到None这个类型是在做一道Python题目时,要求说如果传进函数的字符串是“None”则返回False,糟糕的是我并不知道如何判断是否是“None”。
None翻译成汉语的意思是“没有”,在Python中它表示空,但和空字符串、空列表不一样,做这样一个小实验:
>>> a = []
>>> type(a)
<class 'list'>
>>> b = ''
>>> type(b)
<class 'str'>
>>> c = None
>>> type(c)
<class 'NoneType'>
可以看到,空列表与空字符串都是有类型的,分别为 ‘list’ 与 ‘str’ ,None也是有类型的,为 ‘NoneType’,就是没有类型。我们知道,在Python中一切皆对象,每个对象由:标识(identity)、类型(type)、值(value)组成。
1.标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象obj的标识。
2.类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。
3.值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。
上述代码中c的类型为NoneType,对象“c”没有值。输出上述代码中的a、b、c的值,如下所示。
>>> print(a)
[]
>>> print(b)
>>> print(c)
None
回到原点,如何判断一个对象是否为None呢?可以通过布尔值来判断,空列表、空字符串、None的布尔值均为False,非空列表、字符串的布尔值则为True。
>>> a = []
>>> b = ''
>>> c = None
>>> bool(a)
False
>>> bool(b)
False
>>> bool(c)
False
>>> a.append(1)
>>> a
[1]
>>> bool(a)
True
>>> b = b + '2'
>>> b
'2'
>>>bool(b)
True
在实际写代码时,可以通过if…else…来判断。
a = None
if a:
print("hiahiahia~")
else:
print("wuwuwu~")
关于Python中的None的更多相关文章
- [转]Python中的str与unicode处理方法
早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...
- python中的Ellipsis
...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...
- python中的默认参数
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...
- Python中的类、对象、继承
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...
- python中的TypeError错误解决办法
新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...
- python中的迭代、生成器等等
本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...
- python2.7高级编程 笔记二(Python中的描述符)
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...
- python cookbook 学习系列(一) python中的装饰器
简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...
- 用 ElementTree 在 Python 中解析 XML
用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
随机推荐
- docker下载mongodb镜像并启动容器
1.查找mongodb相关镜像 docker search mongo 找到相关的镜像进行拉取,如果不指定版本,默认下载最新的mongoDB.建议自己先查找需要那个版本后在进行拉取,因为mongoDB ...
- KingbaseES角色和权限介绍
KingbaseES 使用角色的概念管理数据库访问权限.为了方便权限管理,用户可以建立多个角色,对角色进行授权和权限回收,并把角色授予其他用户. 数据库初始化时,会创建一个超级用户的角色:system ...
- Scala 中断循环
一.采用 Scala 自带的函数,退出循环 1 package com.atguigu.break 2 3 object TestBreak { 4 import scala.util.control ...
- 11.硬核的volatile考点分析
大家好,我是王有志.关注王有志,一起聊技术,聊游戏,聊在外漂泊的生活. 今天我们学习并发编程中另一个重要的关键字volatile,虽然面试中它的占比低于synchronized,但依旧是不可忽略的内容 ...
- 2024最新AIGC系统ChatGPT网站源码,GPTs应用,Ai绘画网站源码
一.前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型+国内AI全模型.本期针对源码系统整体测试下来非常完美,那么 ...
- JDK14性能管理工具:jstack使用介绍
目录 简介 jstack的命令格式 jstack的使用 总结 简介 在之前的文章中,我们介绍了JDK14中jstat工具的使用,本文我们再深入探讨一下jstack工具的使用. jstack工具主要用来 ...
- mybatis复习(三)映射文件属性详解和动态SQL
mybatis映射文件属性详解和动态SQL笔记 <SELECT> id = "" 唯一标识parameterType = "" 表示传入SQL语句的 ...
- HarmonyOS音视频开发概述
在音视频开发指导中,将介绍各种涉及音频.视频播放或录制功能场景的开发方式,指导开发者如何使用系统提供的音视频API实现对应功能.比如使用TonePlayer实现简单的提示音,当设备接收到新消息时, ...
- HarmonyOS助力构建“食用菌智慧农场”
原文:https://mp.weixin.qq.com/s/qK4aRY5UKc3GvpLxhwpqww,点击链接查看更多技术内容. [开发者说]栏目是为HarmonyOS开发者提供的展示和分享 ...
- Windows XP Vmware 无法自适应窗口
之前在吾爱破解上找到一个 WindowsXP SP3 的精简系统(目前找不到在哪了),自带 VMtools 和 52 破解工具包,很适合 XP 系统下的逆向和病毒分析.目前准备学习一下<恶意代码 ...