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