第四篇:基本数据类型及用法(1)

萝らか妹 提交于 2020-04-07 11:32:25

字符串(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)

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!