python3基础二——基本的数据类型三

Posted 温润有方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3基础二——基本的数据类型三相关的知识,希望对你有一定的参考价值。

一.字符串str

1.创建字符串,为变量分配一个值

1 word=\'字符串\'
2 sentence="字符串\\n"  #python中单引号和双引号使用完全相同
3 paragraph="""这是一个段落
4 可以有多行组成"""   #使用三引号(\'\'\'或""")可以指定一个多行字符串
5 print(word,sentence,paragraph)
6 ----------------------------------------------------------------------------
7 字符串 字符串 
8 这是一个段落
9 可以有多行组成
创建字符串

2.字符串不能改变,只是创建了一个新的字符串,又重新给变量赋值,原字符串并不会改变

3.没有单独的字符类型,一个字符就是长度为 1 的字符串

4.Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用

5.Python2中普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,Python3所有的字符串都是Unicode字符串。

6.Python 访问子字符串,可以使用方括号来截取字符串

 1 # 字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始
 2 str=\'Runoob\' 
 3 print(str)        # 输出字符串
 4 print(str[0])     # 输出字符串第一个字符R
 5 print(str[0:-1])  # 输出第一个到倒数第二个的所有字符,0<=内容<-1
 6 print(str[2:5])   # 输出从第三个开始到第五个的字符
 7 print(str[2:])    # 输出从第三个开始的后的所有字符
 8 print(str[0:])    # 输出所有字符等同于print(str[:])等同于print(str)
 9 print(str*2)      # 输出字符串两次,用 * 运算符重复
10 print(str+\'你好\') # 连接字符串,用 + 运算符连接在一起
11 print(str[::2])   # 第一个冒号两侧的数字是指截取字符串的范围,第二个冒号后面是指截取的步长。
12 
13 ---------------------------------------------------------------------
14 Runoob
15 R
16 Runoo
17 noo
18 noob
19 Runoob
20 RunoobRunoob
21 Runoob你好
22 Rno
字符串索引切片

7.转义字符以及使用r可以让反斜杠不发生转义

1 str=\'Runoob\\n\'      # 反斜杠 \'\\\'可以用来转义,\\n换行
2 str2=r\'Runoob\\n\'  # 使用r可以让反斜杠不发生转义
3 print(str)        # 输出字符串
4 print(str2)
5 ------------------------------------------------------
6 Runoob
7 
8 Runoob\\n
转义

 

8.字符串运算符

9.字符串格式化:将一个值插入到一个有字符串格式符 %s 的字符串中。还可以用format()进行格式化

1 print("我叫 %s 今年 %d 岁"%(\'小明\',10))
2 ------------------------------------------
3 我叫 小明 今年 10 岁
字符串格式化

 10.占位符

其他:%-左对齐、%+右对齐,%0用0补齐空格

10.编码解码bytes,bytes(在字符串前加b以区分)与str类型只有编码解码的方法不同

 1 name="李璐"
 2 for i in name:
 3     print(i)#for循环每一个元素是“字符”
 4     print(bytes(i,encoding=\'utf-8\'))#把i转换为字节形式,以16进制表示,字符变字节
 5     for b in bytes(i,encoding=\'utf-8\'):
 6         print(b)#for循环输出每一个元素(字节)是以十进制形式
 7         print(bin(b))#bin()把一个字节(十进制的数)用二进制表示
 8 #一个汉字三个字节,
 9 #bytes可以将字符串准换位字节
10 #字节:用16进制表示的二进制
11 ----------------------------------------------------
12 13 b\'\\xe6\\x9d\\x8e\'
14 230
15 0b11100110
16 157
17 0b10011101
18 142
19 0b10001110
20 21 b\'\\xe7\\x92\\x90\'
22 231
23 0b11100111
24 146
25 0b10010010
26 144
27 0b10010000
编码
 1 #对于字符串只有encode编码功能,把字符串转换为bytes字节类型,16进制字节
 2 var1 = \'你好,世界!\'
 3 print(var1)
 4 #encode(encoding=\'UTF-8\',errors=\'strict\')以指定的编码格式编码字符串,默认utf-8和strict
 5 # errors参数可以指定不同的错误处理方案,默认为 \'strict\',意为编码错误引起一个UnicodeError。
 6 # 其他可能得值有 \'ignore\', \'replace\', \'xmlcharrefreplace\',\'backslashreplace\'以及通过codecs.register_error()注册的任何值。
 7 print(var1.encode())#返回编码后的字符串,它是一个 bytes 对象
 8 
 9 
10 
11 #对于bytes字节类型只有解码功能,把bytes类型转换为字符串
12 print(var1.encode().decode())
13 --------------------------------------------------------------------------------
14 你好,世界!
15 b\'\\xe4\\xbd\\xa0\\xe5\\xa5\\xbd\\xef\\xbc\\x8c\\xe4\\xb8\\x96\\xe7\\x95\\x8c!\'
16 你好,世界!
编码解码

11.函数

 1 a1=\'alex\\tis Alph \'
 2 print(len(a1))        #获取字符串长度
 3 print(a1.capitalize())#首字母变大写
 4 print(a1.center(20,"*"))#center(self, width, fillchar=None)内容居中,长度设定,其他填充设定
 5 print(a1.count(\'al\',0,9))#count(self, sub, start=None, end=None)计算指定范围内子序列出现的次数
 6 print(a1.encode(\'utf-8\'))#encoding 指定的编码格式解码 str
 7 print(a1.endswith(\'l\',0,2))#endswith(self, suffix, start=None, end=None)指定范围内是否以XXX结尾
 8 print(a1.expandtabs())#将tab转换成空格,默认一个tab转换成8个空格
 9 print(a1.find(\'ex\'))#find(self, sub, start=None, end=None)从左往右在指定范围寻找子序列位置,如果没找到,返回 -1
10 print(a1.format())#字符串格式化,动态参数
11 print(a1.index(\'a\'))#在指定范围寻找子序列位置,子序列位置,如果没找到,报错
12 print(a1.isalnum())#是否全是字母和数字
13 print(a1.isalpha())#是否全是字母
14 print(a1.isdigit())#是否全是数字
15 print(a1.islower())#是否小写
16 print(a1.isspace())#是否空格
17 print(a1.istitle())#是否标题,首字母全大写
18 print(a1.isupper())#是否全部大写
19 print(\'-\'.join(a1))#个个单位之间用符号连接
20 print(a1.join(\'333333\'))#字符串之间链接
21 print(a1.ljust(20,\'*\'))#内容左对齐,右侧填充
22 print(a1.lower())#变小写
23 print(a1.strip())#去除两边空格
24 print(a1.partition(\'s\'))#分割,前,中,后三部分
25 print(a1.replace(\'l\',\'kb\',2))#替换,从左往右几个
26 print(a1.split(\'l\',1))#分割,有几个分几部分,可以指定几个分割
27 print(a1.startswith(\'a\'))#startswith(self, prefix, start=None, end=None)是否起始
28 print(a1.splitlines())#根据换行分割
29 print(a1.swapcase())#大写变小写,小写变大写
30 print(a1.title())#标题化
31 print(a1.upper())#全大写
32 --------------------------------------------------------------------------------------
33 13
34 Alex    is alph 
35 ***alex    is Alph ****
36 1
37 b\'alex\\tis Alph \'
38 True
39 alex    is Alph 
40 2
41 alex    is Alph 
42 0
43 False
44 False
45 False
46 False
47 False
48 False
49 False
50 a-l-e-x-    -i-s- -A-l-p-h- 
51 3alex    is Alph 3alex    is Alph 3alex    is Alph 3alex    is Alph 3alex    is Alph 3
52 alex    is Alph *******
53 alex    is alph 
54 alex    is Alph
55 (\'alex\\ti\', \'s\', \' Alph \')
56 akbex    is Akbph 
57 [\'a\', \'ex\\tis Alph \']
58 True
59 [\'alex\\tis Alph \']
60 ALEX    IS aLPH 
61 Alex    Is Alph 
方法

12.str

(1)一般函数:startswith、endwith、count、find...

(2)判断字符串:islower、isupper、isdigit、isalpha...

(3)操作类函数:lower、upper、strip/rstrip/lstrip、swapcase(交换大小写)...

13.字符串函数分类:

(1).查找计算:len、find、rfind、index、rindex、count

(2).转换:replace、capitalize、title、lower、upper、

(3).填充压缩:ljust、rjust、center、lstrip、rstrip

(4).分割拼接:split、partition、rpartition、splitlines、join

(5).判定:isalpha、isdigit、isalnum、isspace、startswith、endswith、

 

二.序列

1.序列是Python中最基本的数据结构

2.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。每个索引对应一个元素,最后一个索引是-1

3.Python包含6种内建的序列,包括列表、元组、字符串、Unicode字符串、buffer对象和xrange对象

4.序列通用操作:索引,切片,加,乘,成员检查,计算序列的长度,取序列中的最大、最小值

5.索引:获取单个元素[ ];切片:获取子序列[ : ];加:连接相同序列+;乘:重复序列中所有的元素*;成员检查in;计算长度len();取最大最小值max(),min()

6.索引和切片是不同的:比如list[0]返回第0个元素的值,list[0:1]返回一个只含第0个元素的列表

7.序列的遍历

 (1)在字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来

 (2)在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到,以0开始

 (3)同时遍历两个或更多的序列,可以使用 zip() 组合

 (4)要反向遍历一个序列,首先指定这个序列,然后调用 reversed() 函数

 (5)要按顺序遍历一个序列,使用 sorted() 函数返回一个已排序的序列,并不修改原值

 1 #zip()遍历多个序列
 2 questions = [\'name\', \'quest\', \'favorite color\']
 3 answers = [\'lancelot\', \'the holy grail\', \'blue\']
 4 for q, a in zip(questions, answers):
 5      print(\'What is your {0}?  It is {1}.\'.format(q, a))
 6 
 7 #enumerate() 函数同时得到索引和值
 8 for i, v in enumerate([\'tic\', \'tac\', \'toe\']):
 9     print(i, v)
10 
11 #reversed() 函数反向遍历
12 for i in reversed(range(1, 10, 2)):
13      print(i)
14 
15 #sorted() 函数 顺序遍历
16 basket = [\'apple\', \'orange\', \'apple\', \'pear\', \'orange\', \'banana\']
17 for f in sorted(set(basket)):
18     print(f)
19 ------------------------------------------------------------------------------
20 What is your name?  It is lancelot.
21 What is your quest?  It is the holy grail.
22 What is your favorite color?  It is blue.
23 0 tic
24 1 tac
25 2 toe
26 9
27 7
28 5
29 3
30 1
31 apple
32 banana
33 orange
34 pear
遍历

8.序列的切片和拼接操作可以实现形式上的序列的更新和删除

 

三.列表

1.创建列表

1 #列表,方括号内,逗号分隔
2 # 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
3 list1=[\'a\',\'goole\',1995,"2000"]#列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型
4 print(list1)
5 --------------------------------------------------------------
6 [\'a\', \'goole\', 1995, \'2000\']
创建列表

2.列表作为一个序列,有序列的通用功能:索引,切片,加,乘,成员检查,计算序列的长度,取序列中的最大、最小值

 1 list1=[\'a\',\'goole\',1995,"2000"]#列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型
 2 print(list1)
 3 print(list1[0])                #列表索引从0开始
 4 print(list1[1:5])              #使用方括号的形式截取字符成一个子列表,冒号使用和字符串中一样
 5 list1[2]=2001                  #直接赋值对列表的数据项进行修改或更新,
 6 print(list1)
 7 del list1[2]                   #del语句删除列表的元素
 8 print(list1)
 9 print(len(list1))              #len()表示列表的长度
10 print(list1+[1,2,3])           #+组合,拼接列表
11 print(list1*2)                 #*重复
12 print(\'a\' in list1)            #in元素是否存在于列表中
13 for i in list1:
14     print(i,end=\' \')           #迭代
15 ------------------------------------------------------------------------------
16 [\'a\', \'goole\', 1995, \'2000\']
17 a
18 [\'goole\', 1995, \'2000\']
19 [\'a\', \'goole\', 2001, \'2000\']
20 [\'a\', \'goole\', \'2000\']
21 3
22 [\'a\', \'goole\', \'2000\', 1, 2, 3]
23 [\'a\', \'goole\', \'2000\', \'a\', \'goole\', \'2000\']
24 True
25 a goole 2000 
序列通用功能

3.嵌套列表

 1 #嵌套
 2 a = [\'a\', \'b\', \'c\']
 3 n = [1, 2, 3]
 4 x = [a, n]
 5 print(x)
 6 print(x[0])
 7 print(x[0][1])
 8 ----------------------------------------
 9 [[\'a\', \'b\', \'c\'], [1, 2, 3]]
10 [\'a\', \'b\', \'c\']
11 b
列表嵌套

4.列表元素可以通过直接赋值对列表的数据项进行修改或更新

5.列表末尾添加元素:append and extend,其中append(一个元素),extend(多个元素)(多个元素以列表显示)

 1 #append and extend
 2 list1=[\'google\',1995,"Tabo"]
 3 list1.append(\'baidu\')           #调用append()方法向列表的尾部添加一个新的元素,只能一个元素
python3基础二——基本的数据类型三

01-python3基础-基本数据类型

Python3基础-语法入门

Python3基础-基本数据类型之字典

Python3 - 基础(运算符基本数据类型)

python基础数据类型