博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础数据类型
阅读量:5901 次
发布时间:2019-06-19

本文共 3595 字,大约阅读时间需要 11 分钟。

数据类型

计算机复明肆意就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种个样的数据,不同的数据,需要定义不同的数据类型。在Python中,能狗直接处理的数据类型有一下几种

一 Number(数字)

1.1 数字类型的创建

a=10b=ab=666print(a)#10print(b)#666

1.2 Number 类型转换

var1=3.14var2=5var3=int(val1)var4=float(val2)print(var3,var4)

二 字符串类型(string)

字符串是以单引号‘或双引号’括起来的任意文本,比如'abc','123'等等

请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。

2.1 创建字符串

var1 = 'hello World!'var2 = "Python RAlvin"

对应操作:

# 1    *重复输出字符串print('hello'*2)# 2     [] ,[:] 通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表print('helloworld'[2:]) # 3     in  成员运算符 - 如果字符串中包含给定的字符返回 Trueprint('el' in 'hello') # 4     %   格式字符串print('alex is a good teacher')print('%s is a good teacher'%'alex')  # 5     +   字符串拼接a='123'b='abc'c='789'd1=a+b+cprint(d1)# +效率低,该用joind2=''.join([a,b,c])print(d2)

三 字节类型(bytes)

# a=bytes('hello','utf8')# a=bytes('中国','utf8')  a=bytes('中国','utf8')b=bytes('hello','gbk')#print(a)        #b'\xe4\xb8\xad\xe5\x9b\xbd'print(ord('h')) #其十进制 unicode 值为: 104print(ord('中'))#其十进制 unicode 值为:20013 #  h   e  l   l   o# 104 101 108 108 111   编码后结果:与ASCII表对应  #     中                国#   \xd6\xd0         \xb9\xfa       gbk编码后的字节结果#\xe4 \xb8 \xad   \xe5 \x9b \xbd    utf8编码后的字节结果# 228 184 173      229 155  189        a[:]切片取  c=a.decode('utf8')d=b.decode('gbk')#b=a.decode('gbk') :很明显报错 print(c) #中国print(d) #hello

注意:对于 ASCII 字符串,因为无论哪种编码对应的结果都是一样的,所以可以直接使用 b'xxxx' 赋值创建 bytes 实例,但对于非 ASCII 编码的字符则不能通过这种方式创建 bytes 实例,需要指明编码方式。

b1=b'123'print(type(b1))# b2=b'中国' #报错# 所以得这样:b2=bytes('中国','utf8')print(b2)#b'\xe4\xb8\xad\xe5\x9b\xbd'

四 布尔值

一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写)

print(True)print(4>2)print(bool([3,4]))print(True+1)

与或非操作:

bool(1 and 0)bool(1 and 1)bool(1 or 0)bool(not 0)

布尔值经常用在条件判断中:

age=18if age>18:#bool(age>18)    print('old')else:    print('young')

五 List(列表)

编程语言有一个重要的数据类型----列表(list)

什么是列表:
列表(list)是Python以及其他语言中最常用到的数据结构之一。Python使用中括号[]来解析列表。列表是可变的(mutable) --可以改变列表的内容。
对应操作:

1 查 ([])

names_class2=['张三','李四','王五','赵六']        print(name_class2[2])#王五    print(name_class2[0:3])#['张三', '李四', '王五']    print(name_class2[0:7])#['张三', '李四', '王五', '赵六']    print(name_class2[-1])#赵六    print(names_class2[0:3:1])#['张三', '李四', '王五']    print(names_class2[3:0:-1])#['赵六', '王五', '李四']

2 增 (append,insert)

insert方法用于将对象插入到列表中,而append方法则用于在列表末尾追加新的对象

names_class2=['张三','李四','王五','赵六']    names_class2.append('alex')#['张三', '李四', '王五', '赵六', 'alex']    names_class2.append(2,'alvin')#['张三', '李四', 'alvin', '王五', '赵六']    print(names_class2)

3 改 (重新赋值)

names_class2 = ['张三', '李四', '王五', '赵六']names_class2[3]='赵七'#['张三', '李四', '王五', '赵七']names_class2[0:2]=['wusir','alvin']#['wusir', 'alvin', '王五', '赵六']print(names_class2)

4 删 (remove,del,pop)

names_class2 = ['张三', '李四', '王五', '赵六']names_class2.remove('张三')#['李四', '王五', '赵六']del names_class2[0]#['李四', '王五', '赵六']names_class2.pop()#['张三', '李四', '王五'] 注意,pop是有一个返回值的print(names_class2)

5 其他操作

5.1 count

count方法统计某个元素在列表中出现的次数

>>>['to', 'be', 'or', 'not', 'to', 'be'].count('to')2>>>x = [[1,2], 1, 1, [2, 1, [1, 2]]]>>>x.count(1)2>>>x.count([1,2])1

5.2 extend

extend 方法可以在列表的末尾一次性追加另一个序列中的多个值。

>>>a = [1, 2, 3]>>>b = [4, 5, 6]>>>a.extend(b)>>>a[1, 2, 3, 4, 5, 6]

extend 方法修改了被扩展的列表,而原始的连接操作(+)则不然,它会返回一个全新的列表。

>>>a+b[1, 2, 3, 4, 5, 6, 4, 5, 6]

5.3 index

index 方法用于从列表中找出某个值第一个匹配项的索引位置

print(names_class2.index('李四'))#1

5.4 reverse

reverse 方法将列表中的元素反向存放。

names_class2 = ['张三', '李四', '王五', '赵六']names_class2.reverse()print(names_class2)#['赵六', '王五', '李四', '张三']

转载于:https://www.cnblogs.com/puqunzhu/p/9708466.html

你可能感兴趣的文章
在ASP.NET MVC控制器中获取链接中的路由数据
查看>>
使用ASP.NET Atlas SortBehavior实现客户端排序
查看>>
图像滤镜处理算法:灰度、黑白、底片、浮雕
查看>>
多线程一个错误的例子
查看>>
默认网关及route print
查看>>
Servlet如何处理一个请求?
查看>>
Linux Daily2
查看>>
使用Jquery+CSS如何创建流动导航菜单-Fluid Navigation
查看>>
Office文档出错的几种原因与解决方法
查看>>
【实验报告】实验二:DHCP基本实验
查看>>
气质的培养(哈佛管理世界)
查看>>
Can't get Kerberos realm
查看>>
正则表达式 学习笔记1.1
查看>>
通过案例学调优之--AWR BaseLine管理
查看>>
如何使用MySQL提升权限
查看>>
keepalived 原理,安装,配置
查看>>
乐在其中设计模式(C#) - 单例模式(Singleton Pattern)
查看>>
AssetBundle进阶内存优化(Unity 4.x)
查看>>
Windows Home Server 简体中文版安装和配置体验 - 海量图鉴
查看>>
Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations)
查看>>