python的第二天:数据类型

数据类型:
python3中没有long类型,不论多长都是int
一、核心数据类型(五种):

  在Python中变量没有数据类型,但关联的对象有数据类型,可通过type函数查看数据类型

  1、整型(Int):

    包含正整数,负整数和零

    二进制:逢二进一,书写格式为  a = 0b101;

    八进制:逢八进一,书写格式为  a = 0o706;

    十进制:逢十进一,书写格式为  a = 25;

    十六进制:逢十六进一,是写格式为  a = 0x10af;

  注:在CPython中涉及小整数对象池:范围为-5至256,该区间段的整数值永远存在小整数对象池中(即数值地址不变),不会被释放并可重复使用,在交互式中,超过256的整数在内存中的地址不一样,在文件式中,超过256的整数在内存中的地址一样。

 

  2、浮点型(float):

    包含负数,正数和零(0.0);

    其中涉及科学计数法(e/E),如:1.23e-2 (等同于0.0123)  1.23456e5(等同于123456.0)

  3、字符串(str):用来记录文本信息,用引号引起

  4、复数(complex):

    由实部和虚部组成的数字,虚部是以j或J结尾。如:1j   1+1j等

  5、布尔类型(bool):只有两个值(True和False),True本质是1,False本质是0,在python中,bool(0)、bool(0.0)、bool(None)返回的都是False

二、数据类型转换:

  整型转换:int(数据)

  浮点型转换:float(数据)

  字符串转换:str(数据)

  布尔转换:bool(数据)  

  复数转换:complex(数据)

三、运算符:

  1、算数运算符:

  

  2、增强运算符:

  

  3、比较运算符:

  

  4、逻辑运算符:

   and(与)、or(或)、not(非)

  注:逻辑运算and和or涉及短路,即一但结果确定,后面的表达式将不再执行,因此尽量将耗时的判断放在后面。

  5、身份运算符(is):

  

  6、五种运算符优先级:

  

三元运算:
a,b,c = 1,3,5
d = a if a>b else a = c 如果不用三元运算的写法,需要如下判断

if a > b :
d = a
else :
d = c

----------bytes类型
在python2中,bytes和str字符类型区分的不是很清楚。
在python3中,bytes类型就是二进制类型,str是正常的字符串。
视频和音频文件需要用二进制数据去存储。
在python3中,str数据类型需要手动转换,没有隐式转换,要么报错,要么手动str转换。

注意 二进制数据和字符串可以相互转换并存储。

---------list类型及使用-----------

Wangyuting = ["最美","最善良","胸最大","腿最长","最爱我"]
Wangyuting.append("水蛇腰") #增
Wangyuting.insert(1,"屁股最大") #增,在1号位前增加列表内容
Wangyuting[2] = "zuishanliang" #改
Wangyuting.remove("最爱我") #删
Wangyuting.pop() #默认删最后一个
del Wangyuting[1] ------ Wangyuting.pop(1)两种删除方式相同
print(Wangyuting[0:-1:2])#跳着打印,隔一个打印一个
print(names[1:2]) #打印第二个到第三个
print(names[1:3])#切片
print(names[-1]) #打印倒数第一个
print(names[-2:])#打印倒数第二个到最后一个
print(names[:3]) #打印第一个到第四个
print(Wangyuting.index("zuishanliang")) #查看位置
#Wangyuting.clear() #清空列表
print(Wangyuting.count("zuishanliang")) #查看在列表内的数量
Wangyuting.reverse() #将列表倒过来

Zhuweiyu = [1,2,3,4]
Wangyuting.extend(Zhuweiyu) #将列表Zhuweiyu合并到自己列表中

--列表循环
for i in Wangyuting
print(i)

list 的方法中的copy方法,是一种浅copy,只能复制第一层列表,如果列表中还包含有列表,那么只能复制第二层列表的内存位置。

------------------变量赋值内存空间问题-----------------
赋值数字或者字符串是直接赋值,从内存空间中将字符串赋值给变量,而列表的赋值是赋值内存空间的指针。

例子如下:
a = 1
b = a
a = 2
print(a,b)

c = [1,2,3]
d = c
c[1] = 555
print(c,d)

输出结果:
2 1
[1, 555, 3] [1, 555, 3]

-----------元祖-----------
元组用法和列表一样,区别是,元组只可以切片查,不能进行增删改操作,所以元组又叫做只读列表。

---------字典-------

猜你喜欢

转载自www.cnblogs.com/zhuweiyu/p/12331293.html