python基础数据类型

数据类型

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

一 Number(数字)

1.1 数字类型的创建

a=10
b=a
b=666

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

1.2 Number 类型转换

var1=3.14
var2=5
var3=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  成员运算符 - 如果字符串中包含给定的字符返回 True
print('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+c
print(d1)
# +效率低,该用join
d2=''.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 值为: 104
print(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=18
if 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)#['赵六', '王五', '李四', '张三']
posted @ 2018-09-26 17:48  蒲群柱  阅读(195)  评论(0编辑  收藏  举报