第四篇:基本数据类型及用法(1)
字符串(str型)
-可以做加法,乘法
乘法例:
n1="alex"
n2=n1*3
print(n2)
#结果:alexalexalex
-首字母大写: capitalize()
-所有字母变小写: casefold()、lower()
#casefold更牛,很多未知的对应关系也可以变小写
-所有字母变大写:upper()
-判断字符串是否都是大写,小写:isupper(),islower()
-大小写转换,大写变小写,小写变大写:swapcase()
-去除字符串空白,左边空白,右边空白:strip(),lstrip(),rstrip()
-去除字符串左边,右边指定内容:lstrip("str"),rstrip("str")
#str的内容可以分段与字符串匹配,先尽量去除多的子字符串
例:
1 test = "abclinda"
2 v = test.rstrip("3dar4lin")
3 print(v)
4 #结果:abc
-相当于设置宽度,并将内容居中: center(width,fillchar=None)
#参数width必须给,fillchar可以不给,默认none
例:
1 test="abc"
2 v=test.center(10,'*')
3 print(v)
4 #结果:***abc****
-相当于设置宽度,并将内容左置: ljust(width,fillchar=None)
例:
1 test="abc"
2 v=test.center(10,'*')
3 print(v)
4 #结果:***abc****
-相当于设置宽度,并将内容右置: rjust(width,fillchar=None)
例:
1 test="abc"
2 v=test.rjust(10,'*')
3 print(v)
4 #结果:*******abc
-统计字符串中子串出现的次数: count(substr,start,end)
#从start开始到end之间子串substr出现的次数
-判断从start位置开始到end位置,是否以suffix结尾: endswith(suffix,start,end)
-判断从start位置开始到end位置,是否以prefix开头: startswith(prefix,start,end)
-从开始往后找找到第一个子串,获取其位置:find(substr,start,end)
-格式化,将字符串中的占位符替换为指定的值:format(args1,args2)
例1:
1 test="i am {name},age {a}"
2 print(test)
3 v=test.format(name="hm",a=25)
4 print(v)
5 #结果:i am {name},age {a}
6 # i am hm,age 25
例2:
1 test="i am {0},age {1}"
2 print(test)
3 v=test.format("hm",25)
4 print(v)
5 #结果:i am {0},age {1}
6 # i am hm,age 25
例3:
1 test="i am {name},age {a}"
2 print(test)
3 v=test.format_map({"name":"hm","a":25})
4 print(v)
5 #结果:i am {name},age {a}
6 # i am hm,age 25
-判断字符串中是否只包含字母或数字:isalnum()
-判断字符串中是否只包含字母(包括汉字):isalpha()
-以\t为分界,num个字符为一组,不满num个的用空格填充:expandtabs(num)
例:
test="612345\t789\t987"
v=test.expandtabs(5)
print(v,len(v))
#结果:612345 789 987 18
-判断字符串输入的是否是数字:isdecimal()、isdigit()、isnumeric()
例:
1 test="三"
2 v1=test.isdecimal()
3 #识别十进制数字
4 v2=test.isdigit()
5 #特殊字符数字(③)也能识别
6 v3=test.isnumeric()
7 #特殊字符数字,汉字数字都能识别
8 print(v1,v2,v3)
9 #结果:False False True
-判断字符串是否是标识符:isidentifier()
-判断字符串是否可以被print:isprintable()
#字符串中存在不可显示的字符时,比如转义符\n \t等,结果就是false
-判断字符串是否全是空格:isspace()
-转换成标题形式,及每个单词首字母大写:title()
-判断字符串是否是标题:istitle()
-字符串test每个字符中间插入间隔符t: t.join(test)
例:
1 test="12你是猪头bb"
2 t='_'
3 v=t.join(test)
4 print(v)
5 #结果:1_2_你_是_猪_头_b_b
-字符串中某些字符str1替换成指定字符str2:maketrans(str1,str2) &translate()
例:
1 m=str.maketrans("我做饭1","你炒菜2")
2 v = "我不做今天饭1"
3 new_v=v.translate(m)
4 print(new_v)
5 #结果:你不炒今天菜2
-用str2替换字符串中的某些字符str1:replace(str1,str2,num)
#num表替换次数
例:
1 test="1abcabcabc2"
2 v=test.replace("bc","AA",2)
3 print(v)
4 #结果:1aAAaAAabc2
-从左起第一个指定字符分割字符串:partition("str")
从右起第一个指定字符分割字符串:rpartition("str")
例:
1 test="sr3abcdea1242"
2 v=test.partition("a")
3 print(v)
4 #结果:('sr3', 'a', 'bcdea1242')
-按指定字符分割字符串,分割次数可以设置,但指定字符会丢失:split('str',num)
例:
1 test="sr3abcdae4a123"
2 v=test.split("a",2)
3 print(v)
4 #结果:['sr3', 'bcd', 'e4a123']
-根据换行符\n分割字符串,参数True,False表是否保留换行符:splitline(args)
例:
1 test="sr3ab\ncdae\n4a123"
2 v=test.splitlines(True)
3 print(v)
4 #结果:['sr3ab\n', 'cdae\n', '4a123']
-获取字符串指定位置的字符:str[num] (索引的概念)
-获取指定索引范围内的字符:str[num1:num2] (切片的概念)
#num1取得到,num2取不到
#str[0:-1]表示:-1表示右起第一位数
-获取字符串中的字符数:len(str) #python3中一个汉字就是一个字符
-遍历字符串中每个字符可以用for循环:
例:
1 test="蓝天白云ab12"
2 for v in test:
3 print(v)
4 #结果:
5 # 蓝
6 # 天
7 # 白
8 # 云
9 # a
10 # b
11 # 1
12 # 2
数字
-在python3里没有范围限制,int型
-可以加(+),减(-),乘(*),除(/),乘方(**),求余(%),取商整数部分(//)
-类型转换
例1:字符串转换为数字类型
1 a="123"
2 b=int(a)
3 print(type(b),b)
4 # 结果:<class 'int'> 123
例2:字符串按指定进制转换成数字类型
1 num="a"
2 v=int(num,base=16)
3 print(v)
4 #结果:10
例3:数字转换成字符串类型
1 a=123
2 b=str(a)
3 print(b)
4 #结果:123
-数字的长度(当前数字的二进制至少用位表示)
例:
1 age=10
2 v=age.bit_length()
3 print(v)
4 #结果:4
布尔值,bool型:True、Flase
字符串 "" =>Flase " "=>True
数字 0 =>Flase 其他 =>True
列表list
1.列表中的元素可以是字符串、数字、bool值、列表...
a.索引可取值
b.切片仍是列表
c.支持for循环,while循环
d.列表元素可以被修改,被删除
例:del li(2)/del li[1:3]
2.类型转换
a.字符串转列表
例:
1 s = "wqdf"
2 new_s=list(s)
3 print(new_s)
4 #结果:['w', 'q', 'd', 'f']
b.列表转换成字符串
-列表里既有数字又有字符串时,用for循环
例:
1 li=[12,23,"ab"]
2 s=""
3 for i in li:
4 s=s+str(i)
5 print(s)
6 #结果:1223ab
-列表中只有字符串时,直接使用字符串的joi方法
例:
1 li=["1aa2b","ab"]
2 v="".join(li)
3 print(v)
4 #结果:1aa2bab
3.在list最后追加元素:append(args)
4.清空list:clear()
5.拷贝:copy()
6.计算列表中某元素出现次数:count(args)
7.扩展原列表:extend(li)
*li是字符串会或列表或元祖等可迭代对象,li中每个元素作为新元素追加到原列表中
8.查找某元素的索引:index(args)
*最左边优先
9.在指定索引位置插入元素:insert(location,args)
10.删除指定索引的元素,并可以获取到该元素:v=pop(index)
*index不指定时,默认删除最后一个元素
11.删除指定元素:remove(value)
12.给列表排序
-从小到大:li.sort()
-从大到小:li.sort(reverse=True)
元祖tuple
1.元祖的一级元素不可增删改
2.元祖的元素可以是数字,字符串,bool值,列表
3.推荐在元祖最后一个元素后加逗号,用以与方法区分
例:tu=(12,21,"a",True,[1,"a"],)
4.索引可取值
5.切片也可取值,仍是元祖
6.可以for循环(可迭代对象)
7.类型转换
a.字符串转换成元祖
b.列表可转换成元祖
c.元祖可转换成列表
d.元祖转换成字符串
-元祖中只包含字符串元素,可用join()方法转换成字符串
-元素中包含字符串与数字等元素,用for循环转换成字符串
8.获取元素在元祖中出现的次数:count(value)
9.获取元素在元祖中的索引位置(最左边的优先):index(value)