python学习3—数据类型之整型、字符串和布尔值

python学习3-数据类型之整型、字符串和布尔值

数据类型

python3支持的数据类型共有6种:

1 Number
2 String
3 List
4 Tuple
5 Set
6 Dictionary

数字类型共有三种:

1 int
2 float
3 complex

python2中还有long类型,但是python3中将其整合到了int类型里,即python3中无long类型。

整型(int)魔法

1. 将字符串转换为数字int()

num = ""
v1 = int(num,base=2)
v2 = int(num,base=8)
v3 = int(num,base=16)
print(v1,v2,v3)

2. 当前数字的二进制至少用几位表示bit_length()

num = ""
v1 = int(num,base=2)
v2 = int(num,base=8)
v3 = int(num,base=16)
print(v1,v2,v3) v4 = v1.bit_length()
print(v4)

字符串(string)魔法

1. 英文字母变小写lower(),大写upper()

2. 所有字符变小写casefold(),首字母大写capitalize()

3. 设置宽度并将内容居中,空白位置填充默认为无center(self,width,fill=None)

  空白位置只能填充一个字符:*,9,中

  ljust():左侧填充,可指定填充符号

  rjust():右侧填充,可指定填充符号

  zfill():左侧填充,但只能填充0

4.计算字符在字符串里面出现的次数count('str')

  更多参数:start=5, end = 10,搜索位置在字符串的范围,字符串从0开始编号

  [start, end)为左闭右开区间

5. 是否以某字符结尾endswith('str'),也可设置开始与结束位置

6. 是否以某字符开头startswith('str'),也可设置开始与结束位置

7. 寻找某字符第一次出现的位置find('str'),也可设置开始与结束位置

  返回值为-1意为没找到

  index也可进行寻找,但是若找不到会直接报错,可舍弃此命令

8. 将用{}括起来的内容(占位符)进行赋值替换,format(name = 'str')

test ='i am {name}, age {a}'
print(test)
v=test.format(name=’alex’,a=19)
print(v)

另外一种书写方式,按照字典方式:

test ='i am {name}, age {a}'
print(test)
v=test.format_map({"name":’alex’,"a":19})
print(v)

9. 判断字符串中是否仅包含字母和数字isalnum()

10. 扩展制表符的占位数expandtabs(num)

test = "1234567\t8"

输出:

1234567     8

7与空格共占6个字符,用于输出制表

11. 判断字符串是否只包含字母isalpha()

  汉字也可以

12. 判断字符串是否只包含数字

  isdecimal(),十进制数

  isdigit(),特殊数字符号

  isnumeric(),中文数字也支持

13. 判断是否可以作为标识符isidentifier()

14. 判断大小写

  isupper()

  islower()

15. 判断输出是否包含转义字符isprintable()

  转义字符包含:\t, \n等

16. 判断是否全部是空格isspace()

17. 判断是否是标题(所有单词首字母全部大写)

  istitle()

  title(),将字符串转换为标题

18. 将字符串中的每一个元素按照分隔符进行分割  join()

t = "asdfghjkl"
v = "_"
print(v.join(t))

输出为:

>>> a_s_d_f_g_h_j_k_l

19. 消除空格

lstrip():去除左侧空格、\t、\n

rstrip():去除右侧空格、\t、\n

strip():去除全部空格、\t、\n

可指定需要去除的字符

t = "xxalex"
t.lstrip("xx")

注:匹配子序列,只要有符合的子序列均可以去除

t = "xalex"
t.rstrip("sdfgex")

输出:

>>>xal

注:循环匹配并去除

20. 根据对应关系进行字符串的替换

v = "asceilwacbrycbalyIVCNAE"
m = str.maketrans("aeiou","")
v.translate(m)

21. 分割字符串

test = "testdcbabckyreuvsscebs"
test.partition("s")
test.rpartition("s")
test.split('s',2)
test.rsplit('s',2)

partition()只将字符串分割为三份,且分割符号保留

split()将字符串按照分割符全部分割,且分割符不保留,可指定分割的个数

22. 分割换行符,true保留换行符,false去掉换行符splitlines()

23. 大小写转换swapcase()

24. 替换字符replace("str",'xxx',num)

列表(list)

列表中包含的元素可以是 数字,字符串,列表,布尔值,列表等所有数据类型

列表支持索引与切片,且方法与字符串相同

列表也支持for, while循环

列表在内存中以链表的形式存储,其元素可以容易的修改

通过索引、切片进行修改:

li = [12,25,55,"alex",[11,22,"picth"]]

li[1:3] = [120,90]

灰魔法

1. 字符串索引、切片

test = "alex"

test[0]
test[1]
test[2]
test[3] test[0:1]
test[0:-1]

区间为左闭右开,-1表示最后一个元素,所以test(0:-1)可以输出前三个字母(不包含最后一个字母)

2. len获取当前字符串由几个字符组成,中文亦可(一个汉字一个字符)

3. for循环依次输出字符串里面的各个字符

test = "cbuabvrlvbaehubrf"

for i in test:
print(i)

  for循环仍然支持break与continue

4. 创建连续数字range(a,b,sep)

for i in range(100):
print(i)

  其中[a,b)为左闭右开区间,sep为步长

深灰魔法

1. 字符串一旦创建,不可修改,且一旦修改,会创建一个新的字符串来存储

2. 数据类型转换:

b = int(a)

b = str(a)

b = bool(a)

3. 可迭代对象:可以被for循环的对象

for i in 可迭代对象

4. bool值补充

"",空字符串为False

"    ",只要字符串有值就为True

数字0,False

其他数字,True

上一篇:[Machine-Learning] 熟悉 Numpy


下一篇:linux内核SPI总线驱动分析(二)(转)