python中唯一的映射类型是-Python内置类型及常见问题

python的内置数据类型非常丰富,大致可以分为五类:None、数字类型、序列类型、映射类型和集合类型。下面我将分别对他们进行介绍,做个总结以备以后查看。下面的表列出了各个类别下的具体数据类型。*注:本文所讲的内容都是基于python2的,python3会有些不同*。类型分类类型名称描述

NoneType(None)null对象None

数字类型int整数

long长整数,任意精度(python2)

float浮点数

complex复数

bool布尔值(True或False)

序列类型str字符串

unicodeUnicode字符串(python2)

list列表

tuple元组

xrangexrang()创建的整数范围

映射类型dic字典

集合类型set可变集合

frozenset不可变集合

1.NoneNone表示一个null对象,这是一个空对象,如果一个函数没有返回值,则返回null对象。None没有任何属性,在布尔表达式中表示False。

2.数字类型除了布尔类型外,所有数字类型都是有符号的。整数的表示范围在-2147483648和2147483647之间,长整数可以表示任意长度,只受可用内存大小的限制。

#整数

i=123

i=int(123)

#长整数

l=123L

l=long(123)

浮点数是双精度类型(64bit),和c语言中double相同,数值范围-1.7*10(-308)到1.7*10(308)。f=12.3

f=float(12.3)

复数使用一对浮点数表示,分为实部和虚部,使用real和imag访问,虚部后缀j或J。c=1.0+2.3j

c=complex(1.0,2.3)

printc.real,c.imag

布尔值只有True和False两个值,分别映射为整数1和0。b=False

b=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^2

9

对于整数还可以进行位运算,共有6种位运算:取反(~)、左移(<<)、右移(>>)、异或(^)、按位或(|)、按位与(&)。>>>~1# 1取反后为-2的补码

-2

>>>8<<1# 左移

16

>>>8>>2# 右移

2

>>>1^3# 01 和 11 异或得到10,就是2

2

>>>1|3# 01 和 11 位或得到11,就是3

3

>>>1&3# 01 和 11 位与得到01,就是1

1

布尔类型可以通过布尔表达式取值,布尔比较运算符有6种:小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)、不等于(!=)。>>>1<2

True

>>>1<=2

True

>>>1>2

False

>>>1>=2

False

>>>1==2

False

>>>1!=2

True

对于布尔类型还可以进行逻辑运算,有3种运算:逻辑非(not)、逻辑非或(or)、逻辑与(and)。>>>notTrue

False

>>>TrueorFalse

True

>>>TrueandFalse

False

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模块。>>>frommathimportfloor,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]

>>>dell[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)

>>>foriinx:

printi

1

3

5

7

9

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中字典的历遍方式:

#使用键历遍

foriind:

printi,d[i]

#使用键值历遍

fork,vind.items():

printk,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内置类型常见问题

python基本内置数据类型有哪些?

一些基本数据类型,比如:整型(数字)、字符串、元组、列表、字典和布尔类型。随着学习进度的加深,大家还会接触到更多更有趣的数据类型,python初学者入门时先了解这几种类型就可以了。

基本内置数据类型对应符号?

1)整型——int——数字

python有5种数字类型,最常见的就是整型int。例如:1234、-1234

2)布尔型——bool——用符号==表示

布尔型是一种比较特殊的python数字类型,它只有True和False两种值,它主要用来比较和判断,所得结果叫做布尔值。例如:3==3 给出True,3==5给出False

3)字符串——str——用" "或" "表示

例如:"www.iplaypython.com"或者"hello"

4)列表——list——用[ ]符号表示

例如:[1,2,3,4]

5)元组——tuple——用( )符号表示

例如:("d",300)

6)字典——dict——用{ }符号表示

例如:{"name":"coco","country":"china"}

Python基本数据类型中哪些可变,哪些是不可变?

python可变数据类型:列表list[ ]、字典dict{ }

python不可变数据类型:整型int、字符串str" "、元组tuple()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值