那些年被我坑过的Python——不得不知(第二章)
问题一:
Python3.5.X中的数据类型有哪些?
答:包括整型、布尔型、字符串型、浮点型、复数、列表、字典、集合、元组。
细化来说:
1、整型包括短整型和长整型,不过我们不必过度操心细节,因为短整型和长整型之间是隐式切换的,Py自己会根据数值大小自行选择适合的整型。
2、字符串型,需要用成对的引号标识,它的内置函方法的使用如下:
1 a = "test for data type" 2 # 首字母大写 3 a = a.capitalize() 4 print(a) 5 6 a = "TEST FOR DATA TYPE" 7 # 测试发现是忽略大小写的意思 8 # Return a version of S suitable for caseless comparisons. 9 # 返回一个字符串,适用于忽视大小写的字符串对比 10 a = a.casefold() 11 12 print(a) 13 14 # 居中格式化输出的小工具 15 a = a.center(50, "+") 16 print(a) 17 18 # 返回字符串中包含的子串的个数(可以设定起止位置) 19 20 a = "test for data type" 21 print(a.count('t', 0, -5)) 22 23 # 对a进行编码后再解码默认是UTF-8 24 b = a.encode(encoding='gb2312') 25 a = b.decode() 26 print("after coding change a='", a, "'") 27 28 # 判断是否以某个子串结尾或是开头 29 print(a.endswith('ype')) 30 print(a.startswith('te')) 31 32 # 设置tab所对应的空格数,便于输出的美化 33 a = 't e s t ' 34 print(a.expandtabs(20)) 35 36 # 返回子串的索引值(可以设定起止位置) 37 print(a.find('t', 0, -1)) 38 # 反向查找(获取的索引还是正常的序) 39 print(a.rfind('t')) 40 41 # 字符串的格式化输出,这里不再赘述 42 # a.format() 43 44 # 获取子串的索引值,这和find()的区别是什么??? 45 print(a.index('t', 0, -1)) 46 # 反向获取子串的索引值(索引还是正常的序) 47 print(a.rindex('t')) 48 49 # 判断字符串是否仅由字母和数字构成 50 a = 'aBc123' 51 print(a.isalnum()) 52 53 # 判断是否全是字母构成 54 a = 'aBc' 55 print(a.isalpha()) 56 57 # 判断是否为十进制的 58 a = '0x11' 59 b = '011' 60 c = '0b1100011' 61 d = '110' 62 print('isdecimal', a.isdecimal(), b.isdecimal(), c.isdecimal(), d.isdecimal()) 63 64 # 判断是否为纯数字的,这和isdecimal()有什么区别? 65 # a = '0123' 66 print('isdigit', a.isdigit(), b.isdigit(), c.isdigit(), d.isdigit()) 67 68 # 判断是否为纯数字的,这和isdecimal()有什么区别?这三个函数是不是有重叠的嫌疑? 69 print('isnumeric', a.isnumeric(), b.isnumeric(), c.isnumeric(), d.isnumeric()) 70 71 # 判断是否符合变量的命名规范! 72 print("__Aa123__".isidentifier()) 73 74 # 判断字符串中的字母(忽略其他字符)是否全部为大写字母或是小写字母 75 a = 'a ac12 c ' 76 print(a.islower()) 77 a = 'A AC12 C ' 78 print(a.isupper()) 79 80 # 可打印显示出来的字符 81 a = '@*%&$^' 82 print(a.isprintable()) 83 84 # 是不是空格,不解释 85 a = ' ' 86 print(a.isspace()) 87 88 a = 'never give up!' 89 print(a) 90 a = a.title() 91 print(a) 92 print(a.istitle()) 93 94 a = 'never give up younger!' 95 # 按指定的分隔符把字符串拆分成列表,默认的分隔符任何空白字符 96 b = a.split(None, 1) 97 print(b) 98 99 # 按指定的连接符把列表合成字符串,与split()互反 100 print(" ".join(b)) 101 102 # 查找分隔符的方向是从右到左 103 print(a.rsplit(None, 1)) 104 105 # 按换行符号进行分隔 106 print(a.splitlines()) 107 108 # 左对齐,总长固定,空位用单个字符补齐 109 print(a.ljust(50, "t")) 110 111 # 右对齐,总长固定,空位用单个字符补齐 112 print(a.rjust(50, "t")) 113 # 右对齐,总长固定,空位用'0'补齐 114 print(a.zfill(50)) 115 116 # 剥离边界上的子串 117 a = "!tree!" 118 print(a.strip("e!")) 119 print(a.lstrip("!")) 120 print(a.rstrip("!")) 121 122 a = "13222334455" 123 # 生成对字符串的字符转换表 124 trans1 = "".maketrans("123456abcdefg", "fedcba7654321") 125 # 利用转换表对字符串进行转换 126 print(a.translate(trans1)) 127 128 # 字符串替换旧、新、多少个,这里到结尾 129 print(a.replace('222', 'abc', -1)) 130 131 a = 'aA123bBccc456DDD123ddd' 132 # 字母大小写调换,小写变大写,大写变小写 133 print(a.swapcase()) 134 135 136 # 个人感觉用途不大,只分成三段的情况下适用 137 # 就是按某个分隔符将字符串分为三部分,分别是分隔符前的、分隔符、分隔符后的 138 print(a.partition('2')) 139 # 优先从高位遇到的第一个分隔符截 140 print(a.rpartition('2'))
3、浮点型:需要注意科学计数法的表示:
如:1.2345E+1表示:1.2345*(10**1)=12.345
1.2345E-1表示:1.2345*(10**-1)=0.12345
4、复数:表示方法参照 4+8j,注意其中使用虚数部分用 j 标识而不是数学书上的 i,因为这里采用的是工程标准
5、列表:列表内置方法简介:
1 # 追加一个元素 2 .append("something") 3 # 在指定的索引位置上插入新元素,原位置以及之后元素依次自动后移 4 .insert() 5 # # 通过添加迭代器中的元素实现列表扩展 6 .extend() 7 8 # 统计某个元素出现的次数 9 .count("re") 10 11 # 按ASCII码表顺序排 12 .sort() 13 # 列表内元素倒序输出 14 .reverse() 15 16 # 浅拷贝 17 .copy() 18 19 # 按索引号弹出,默认-1即最后一个元素 20 .pop() 21 # 移除指定元素 22 .remove("re") 23 # 清空 24 .clear()