python none,null,,,,,类型
内建类型None表示一个空对象,没有方法和属性。
None是一个特殊的常量。
None和False不同。
None不是0。
None不是空字符串。
None和任何其他的数据类型比较永远返回False。
None有自己的数据类型NoneType。
你可以将None复制给任何变量,但是你不能创建其他NoneType对象。
一、Python对象
要理解这个,首先要理解Python对象:
python对象具有三个特性:身份、类型、值。
三特性在对象创建时被赋值。只有值可以改变,其他只读。
类型本身也是对象。
二、Null与None
是Python的特殊类型,Null对象或者是None Type,它只有一个值None.
它不支持任何运算也没有任何内建方法.
None和任何其他的数据类型比较永远返回False。
None有自己的数据类型NoneType。
你可以将None复制给任何变量,但是你不能创建其他NoneType对象。

>>> type(None) <class 'NoneType'> >>> None == 0 False >>> None == ' ' False >>> None == None True >>> None == False False
以下的文章是对Python对象整理的相关介绍以及Python空对象整理的相关代码的详细介绍,如果你对其有想了解的欲望时,你就可以点击以下的文章对其相关的详细的内容有一个更好的了解。
本篇主要整理一下Null与None两种类型的区别
- <!--[if !supportLists]-->一、<!--[endif]-->None
Python的 Null对象
Python有一个特殊的类型,被称为 Null 对象或者 NoneType,Python对象整理只有一个值,那就是 None。它不支持任何运算也没有任何内建方法。如果非常熟悉C语言,就会知道和None类型最接近的C类型就是void,None类型的值和C的 NULL值非常相似(其他类似的对象和值包括Perl的undef和Java的void类型与null值)。None没有什么有用的属性,它的布尔值总是 False。
示例:
- resultset = Server.getOptionType(value)
查询数据库返回其相关信息
- if resultset == None:
表示此数据集为NULL对象的。
Python Objects,所有的Python对象整理都有下列三个特征:
id:对象间相互区别的唯一标识符。任何对象的id均可通过内建的id()函数获得,其值为内存地址。(对象的标识符ID)类型:对象的类型指示对 象能保持的类型、能应用的操作。可使用内建的type()函数显示对象的类型。值:对象表示的数据项。确定的Python对象有熟悉、数据值或可执行代码 (如方法)等。
None,Python有一个特殊的None对象,它仅有一个值,None。None值等同于C语言的null。None没有属性,总等于布尔值的false。
python学习笔记之内置数据类型
目录
python的内置数据类型非常丰富,大致可以分为五类:None、数字类型、序列类型、映射类型和集合类型。下面我将分别对他们进行介绍,做个总结以备以后查看。下面的表列出了各个类别下的具体数据类型。注:本文所讲的内容都是基于python2的,python3会有些不同。
| 类型分类 | 类型名称 | 描述 |
|---|---|---|
| None | Type(None) | null对象None |
| 数字类型 | int | 整数 |
| long | 长整数,任意精度(python2) | |
| float | 浮点数 | |
| complex | 复数 | |
| bool | 布尔值(True或False) | |
| 序列类型 | str | 字符串 |
| unicode | Unicode字符串(python2) | |
| list | 列表 | |
| tuple | 元组 | |
| xrange | xrang()创建的整数范围 | |
| 映射类型 | dic | 字典 |
| 集合类型 | set | 可变集合 |
| frozenset | 不可变集合 |
1.None
None表示一个null对象,这是一个空对象,如果一个函数没有返回值,则返回null对象。None没有任何属性,在布尔表达式中表示False。
2.数字类型
除了布尔类型外,所有数字类型都是有符号的。整数的表示范围在-2147483648和2147483647之间,长整数可以表示任意长度,只受可用内存大小的限制。
#整数i = 123i = int(123)#长整数l = 123Ll = long(123)
浮点数是双精度类型(64bit),和c语言中double相同,数值范围-1.710(-308)到1.710(308)。
f = 12.3f = float(12.3)
复数使用一对浮点数表示,分为实部和虚部,使用real和imag访问,虚部后缀j或J。
c = 1.0 + 2.3jc = complex(1.0, 2.3)print c.real,c.imag
布尔值只有True和False两个值,分别映射为整数1和0。
b = Falseb = bool(True)
2.1.数字运算
除了布尔类型外,int、long、float和complex都可以使用的运算为:加、减、乘、除、整除、幂运算和取余。下面分别举例说明。
>>> 1 + 2 # 加法3>>> 1 - 2 # 减法-1>>> 2 * 3 # 乘6>>> 2 / 4 # 整数除0>>> 2 / 4.0 # 浮点除0.5>>> 3 // 2.0 # 整除1.0>>> 2 % 3 # 取余2>>> 3 ** 2 # 幂运算 =3^29
对于整数还可以进行位运算,共有6种位运算:取反(~)、左移(<<)、右移(>>)、异或(^)、按位或(|)、按位与(&)。
>>> ~1 # 1取反后为-2的补码-2>>> 8 << 1 # 左移16>>> 8 >> 2 # 右移2>>> 1 ^ 3 # 01 和 11 异或得到10,就是22>>> 1 | 3 # 01 和 11 位或得到11,就是33>>> 1 & 3 # 01 和 11 位与得到01,就是11
布尔类型可以通过布尔表达式取值,布尔比较运算符有6种:小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)、不等于(!=)。
>>> 1 < 2True>>> 1 <= 2True>>> 1 > 2False>>> 1 >= 2False>>> 1 == 2False>>> 1 != 2True
对于布尔类型还可以进行逻辑运算,有3种运算:逻辑非(not)、逻辑非或(or)、逻辑与(and)。
>>> not TrueFalse>>> True or FalseTrue>>> True and FalseFalse
2.2.常用数字类型函数
abs():返回给定对象的绝对值。
>>> abs(-2)2
divmod():把除法和取余运算结合起来,返回一个包含商和余数的元组。
>>> divmod(10, 3)(3, 1)
pow():两个参数,幂运算。三个参数,乘方后取余。
>>> pow(2, 5),pow(2, 5, 10)(32, 2)
round():四舍五入
>>> round(3.4),round(3.6)(3.0, 4.0)
floor():向下取整, ceil():向上取整, sqrt():开方, 需要math模块。
>>> from math import floor,ceil,sqrt>>> floor(3.6),ceil(3.6),sqrt(9)(3.0, 4.0, 3.0)
conjugate():复数取共轭
>>> c = 2 + 3j>>> c.conjugate()(2-3j)
3.序列类型
序列表示索引为非负数的有序对象集合,包括字符串、列表和元组。字符串是字符的序列,列表和元组是任意对象的序列。字符串和元组是不可变的,而列表可以插入、删除和替换。所有序列支持迭代。
3.1.字符串
创建一个字符串很简单,但表示字符串的方法有很多。
s = 'string's = "string" # 和上面单引号一样s = '''string''' # 三引号之间的内容都被保留,用于多行输入s = r"string" # 原生字符,关掉字符串中的转义。s = u"string" # unicode字符串
字符串的方法很多,但不会改变字符串里的内容,常用的如下表所示。
| 方法 | 描述 |
|---|---|
| index(sub[,start[,end]]) | 找到子字符串sub首次出现的位置,否则返回-1 |
| find(sub[,start[,end]]) | 找到子字符串sub首次出现的位置,否则报错 |
| startswith(prefix[,start[,end]]) | 检查是否以prefix开头 |
| count(sub[,start[,end]]) | 计算子字符串sub出现的次数 |
| decode([encoding[, errors]]) | 以encoding解码字符串,返回unicode字符串(只用于字节字符串) |
| encode([encoding[, errors]]) | 以encoding编码字符串(只用于unicode字符串) |
| upper() | 返回大写形式 |
| lower() | 返回小写形式 |
| split(sep[,maxsplit]) | 以sep为分隔符分割字符串,maxsplit为最大分割次数 |
| join(t) | 使用当前字符串为分隔符连接t中的字符串 |
| format(*args, kwargs) | 格式化字符串 |
举个format的例子,{0}表示*args的第一个值,{name}表示kwargs中name的值。
>>> "Here is {0},I'm {name}.".format("wuyuans.com", name="wuyuan")"Here is wuyuans.com,I'm wuyuan"
3.2.列表和元组
列表的内容可变,可以包含任意对象,使用中括号表示。
元组的内容不可变,可以包含任意对象,使用圆括号表示。
l = [1, 2, 3, '4', '5'] # 列表l = list((1, 2, 3, '4', '5'))t = (1, 2, 3, '4', '5') # 元组t = tuple("1234")
列表的方法主要用于改变里面的内容,下面列出列表常用的方法。
| 方法 | 描述 |
|---|---|
| list(s) | 将s转化为一个列表 |
| s.append(x) | 将新元素x加到s的尾部 |
| s.extend(t) | 将新列表t加到s的尾部 |
| s.count(x) | 计算x的出现次数 |
| s.index(x[, start[, stop]]) | 搜索x元素 |
| s.insert(i, x) | 在i处添加x |
| s.pop([i]) | 弹出第i个元素,如果省略i,弹出最后一个 |
| s.remove(x) | 移除x |
| s.reverse(x) | 反转列表 |
| s.sort([key[, reverse]]) | 排序 |
也可以通过索引来删除列表中的元素。
>>> l = [1, 2, 3, 4, 5]>>> del l[1]>>> l[1, 3, 4, 5]
3.3.序列通用操作
所有序列都可以通过索引来访问,第一个元素的索引为0,-1为最后一个元素,-2倒数第二个,一次类推。
切片操作:指定索引范围,返回相应的子序列。
还有一些常用的,如下所示
>>> t = (1, 2, 3, 4, 5)>>> l = [1, 2, 3, 4, 5]>>> t[0]1>>> t[1:4] # 索引1~4(2, 3, 4)>>> t[1:4:2] # 索引1~4,步进为2(2, 4)>>> len(t) # 序列长度5>>> max(t) # 最大值5>>> min(t) # 最小值1>>> sum(t) # 序列求和15
3.4.xrange()对象
xrange()对象比较特殊,他表示一个整数范围,只有访问它时才会计算他的值,所以切片操作是不能用于xrange对象的。xrange对象由xrange([i, ] j [, stride])函数创建,i为起始值,stride为步进值。
>>> x = xrange(1,10,2)>>> for i in x:print i13579
4.映射类型
字典(dict)是python为唯一的内置映射类型,任何不可变对象都可以用作字典的键值,如字符串、数字、元组等。字典使用大括号表示,键和值之间用冒号分割,各个键值间用逗号隔开。映射对象是无序的。
d = dict((['name', 'wuyuan'], ['age', 23]))d = {'name': 'wuyuan', 'blog': 'wuyuans.com', 'age': 23}d['school'] = 'HDU' # 添加一项
字典的常用方法和操作
| 方法和操作 | 描述 |
|---|---|
| len(d) | 返回字典d的项目数 |
| d[k] | d中键k的值 |
| del d[k] | 删除d[k] |
| k in d | 如果k是d的键值,返回True |
| d.clear() | 清空d |
| d.copy() | 返回d的一个拷贝 |
| d.fromkeys(s[, value]) | 返回一个新字典,s中的所有元素作为新字典的键,值为value |
| d.get(k[, v]) | 返回d[k],没有则返回v |
| d.items() | 返回由键值组成的序列,主要用于历遍 |
| d.keys() | 返回由键组成的序列 |
| d.values() | 返回由值组成的序列 |
| d.pop(k[, default]) | 弹出d[k],没有则返回default |
| d.update(b) | 将b中对象添加到d中 |
字典的历遍方式:
#使用键历遍for i in d:print i,d[i]#使用键值历遍for k,v in d.items():print k,v
5.集合类型
集合是唯一项的无序集,集合不提供索引或切片操作,集合的长度可变,但放入里面的必须是不可变的。集合分为两种:可变集合(set)和不可变集合(frozenset)。
s = set([1, 2, 3])fs = frozenset([1, 2, 3])
集合通用方法和操作
| 方法和操作 | 描述 |
|---|---|
| len(s) | 返回集合s的项目数 |
| s.copy() | 返回集合s的一份副本 |
| s.difference(t) | 求差集,返回在s中,但不在t中的项目 |
| s.intersection(t) | 求交集,返回同时在s和t中的项目 |
| s.isdisjoint(t) | s和t中没有相同项,返回True |
| s.issubset(t) | s是t的子集,返回True |
| s.issuperset(t) | s是t的超集,返回True |
| s.union(t) | 求并集,返回在s或t中的项目 |
可变集合set的方法和操作
| 方法和操作 | 描述 |
|---|---|
| s.add(item) | 添加item |
| s.clear() | 清空集合s |
| s.difference_update(t) | 在s中删除同时在s和t中的项目 |
| s.discard(item) | 删除item |
| s.pop() | 弹出任一项 |
| s.remove(item) | 删除item,没有则引发异常 |
| s.update(t) | 将t中所有项添加到t中,t为任意支持迭代对象 |
写完收工。。。
python none,null,,,,,类型的更多相关文章
- python基础——重访类型分类
python基础--重访类型分类 对象根据分类来共享操作:例如,字符串.列表和元组都共享诸如合并.长度和索引等序列操作. 只有可变对象(列表.字典和集合)可以原处修改:我们不能原处修改数字,字符串.元 ...
- PHP中的NULL类型
特殊的NULL值表示一个变量没有值,NULL类型唯一的值就是NULL.我们需要注意的是NULL不表示空格,也不表示零,也不是空字符串,而是一个变量的值为空.NULL不区分大小写,在下列情况下一个变量被 ...
- Python中布尔类型
我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:与运算:只有两个布尔值都为 True 时,计算结果才为 True.True and T ...
- Python的文件类型
Python的文件类型主要分为3种:源代码(source file).字节码(byte-code file).优化的字节码(optimized file).这些代码都可以直接运行,不需要编译或者连接. ...
- 005 Python的数值类型
005 Python的数值类型 BIF 指的是内置函数,一般不作为变量命名.如 input,while,if,else,float,等等.整型:整数.(python3.0版本把整型和长整型结合在 ...
- 2.python的文件类型、变量数值和字符串练习
1.python的文件类型 .源代码 -python 源代码文件以"py"为扩展名,由python程序解释,不需要编译. 2.字节代码(编译的) -python源码文件经编译后生成 ...
- Python的可变类型与不可变类型
Python基础知识,自己写一写比较不容易忘 Python的每个对象都分为可变和不可变,主要的核心类型中,数字.字符串.元组是不可变的,列表.字典是可变的. 对不可变类型的变量重新赋值,实际上是重新创 ...
- 测者的测试技术手册:Java中的null类型是测试不可超越的鸿沟
null是一个非常非常特殊的类型,对于每一个测试人员都要十分小心null的存在的可能性.同时null也让很多RD头疼,甚至连Java的设计者都成人null是一个设计失误.这篇文章,测者想聊聊这个让很多 ...
- sqlserver数据库NULL类型注意事项
1,变量NULL类型赋值需要初始化 2,判断条件
随机推荐
- BaseAdapter使listview设置不同背景图片并添加selector
前段时间为了实现根据item不同的内容实现不同的背景色google了好久只找到了个隔行换色,通过自定义SimpleAdapter终于实现了此功能,但是定义了selector并没有触发点击效果.今天重新 ...
- POJ3771+Prim
最小生成树的应用 数据量小. /* Prim */ #include<stdio.h> #include<string.h> #include<stdlib.h> ...
- css--技巧整理(1-13)
(更新中) 1.取消浏览器form中默认样式 a.chrome下input和textarea的聚焦边框 input,button,select,textarea{outline:none} b.取消 ...
- 【转载】Qt中的QString,QByteArray,Qchar, char*
先要说的是QString. 之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int等 ...
- Google日历添加农历、节日和天气插件(步骤)
Google日历添加农历.节日和天气插件(步骤) Google功能非常多,Google日历只是其中一个,而且支持Exchange账户(iPhone,WP7,诺基亚等)和Google账户登录(andro ...
- MSSQL 如何删除字段的所有约束和索引
原文MSSQL 如何删除字段的所有约束和索引 代码如下: ---------------------------------------------------------- -- mp_DropC ...
- 基于Visual C++2013拆解世界五百强面试题--题8-数组的排序和查找
用三种方法实现对一个数组的排序,并设计一个函数实现数的查找,要求时间越短越好,空间占用越少越好. 对数组排序的方法很多,我们选比较常用和容易的三种排序,直接插入排序,冒泡排序和快速排序. 直接插入排序 ...
- android sdk 下载缓慢的问题
原文地址:http://www.oschina.net/question/265039_173445#tags_nav 1.在Android SDK Manager Setting 窗口设置 HTTP ...
- 用javap命令反编译来分析字符串问题
编写Test.java.编译完后生成Test.class文件,然后对该文件运行javap -c Test命令,生成字节码指令.阅读并得出结论 一.s1和s2指向常量池的不同常量 ①java代码 pub ...
- HTTP消息头详解
HTTP是一个属于应用层面的面向对象的协议,由于其便捷.快速的方式.适用于分布式超媒体信息系统.于1990年提出 HTTP 协议主要特点概括如下 1.支持客户/服务器模式. 2.简单快速 请求方法常用 ...