本文内容包括三个部分,第一部分简单介绍python中基本数据类型,第二部分讨论数字的常见处理方法,第三部份讨论字符串的常见处理方法
一.python基本数据类型 python中基本数据类型包括数字(int),字符串(str),列表(list),元组(tuple),字典(dict)。在python中需要注意一点就是对于数字来说,不像其他语言有int和double之分,所有的数字都统称为int.在python中有许多内置的方法来处理这些基本的数据类型。本文和后续几篇文章将陆续总结出python3中的这些内置方法。本文剩下的部分主要讨论数字和字符串的内置方法。
二.数字(int)的处理方法
1.int()函数:
1 a=‘123‘ 2 b=int(a)
int()函数可以将字符串转化为数字,对字符串的要求是字符串全部由数字组成。
2.bit_length():
1 a=123 2 b=a.bit_length() 3 print(b)
该函数表示用二进制来表示该数据至少需要几位二进制数。
三.字符串的处理方法:
1.capitalize():
s=‘hello‘ s.capitalize()
capitalize()函数作用是将字符串的第一个字母变成大写,其他字母全部小写 (注意是字符串的第一个字母,不是单词的第一个字母)
2,casefold()和lower():
s=‘HsewaaAS‘ s.casefold() s.lower()
这两个函数都是将字符串全部变为小写,两个函数不同之处在于,lower只能用于把英文字母全部转化为小写,而cassfold则还可以把其他语言(如法语)的字母全部转为小写。
3.center(width,fillchar=None):
1 s=‘hello‘ 2 s1=s.center(30) 3 s2=s.center(30,‘*‘)
center函数的作用是指定字符串的宽度,并将字符串居中。该函数有两个参数第一个width表示字符串的宽度,第二个参数是一个缺省参数,用来指定该字符串剩下的位置用什么符号来填充,默认是用空格填充。
上面找这段代码的执行效果如下:
4.ljust(width,str=‘ ‘)和rjust(width,str=‘ ‘):
s=‘hello‘ s1=s.ljust(20,‘*‘) s2=s.rjust(20,‘*‘) print(s1) print(s2)
这两个函数和ceter函数类似,ljust表示将字符串变为指定宽度,其中字符串居左,剩下的位置用指定符号填充,默认用空格,rjust表示将字符串变为指定宽度,其中字符串居右,其他位置用指定字符填充,默认为空格。
5.count(sub,start=None,end=None):
1 s=‘hello nihaoya‘ 2 s1=s.count(‘h‘) 3 s2=s.count(‘h‘,6,10) 4 print(s1) 5 print(s2)
该函数计算指定字符串在目标字符串中出现的次数,相当于求子序列在原序列中出现的次数。count有三个参数,第一个参数用来指定需要求次数的子序列,第二个和第三个参数是缺省参数,用来指定原字符串序列的开始结束位置。也就是说,既可以在整个字符串中寻找子序列出现的次数,也可以计算字符串中指定序列中子序列出现的次数。
6.endswith(sub,start=None,end=None),startswith(sub,start=None,end=None):
1 s=‘hello nihaoya‘ 2 s1=s.endswith(‘ya‘) 3 s2=s.startswith(‘h‘) 4 print(s1) 5 print(s2)
这两个函数用来判断字符串是否以指定的子序列结尾和开始。这两个函数都有三个参数,第一个参数用来指定子序列,第二个和第三个参数是缺省参数,用来指定原字符串序列的开始结束位置。如果是以指定序列结尾或开始,则返回True,否则返回False。
7.expandtabs(width):
s="hell\\tdhehde\\ndhienwden\\tndiwen\\n" s1=s.expandtabs(20) print(s1)
代码执行效果:
该函数的作用是将每一个tab键之前的字符串扩展到指定的宽度.该函数可以让字符串像表格那样输出.
8.find(sub,start=None,end=None),index(sub,start=None,end=None):
s="hell\\tdhehde\\ndhienwden\\tndiwen\\n" s1=s.find(‘de‘) print(s1)
find函数查找指定子序列在目标序列中第一次出现的位置,若目标序列中没有该子序列,返回-1。该函数第一个参数是需要查找的子序列,第二个和第三个参数是缺省参数,用来指定原序列的起止位置。index函数与find函数用法功能一致,但是与find函数没有找到子序列返回-1不同,若index没有找到子序列,会直接报错。因此不建议使用该函数。
9.format(),format_map():
s=‘your {name},age{age}‘ s1=s.format(name=‘ahah‘,age=19) print(s1)
format()函数是将字符串中占位符的内容格式化。在字符串中,用{key}表示占位符,通过foramt函数可以将占位符中内容格式化为指定内容。foramt_map()函数功能与format函数相同,只是format_map函数可以传入一个字典。而format则不能。
10.isalnum(),
s=‘123dsds‘ print(s.isalnum())
该函数用来判断字符串中是否只包含字母(中文)和数字,如果是,返回True,否则返回False
11.isalpha():
该函数用来判断字符串中是否只包含字母(中文),如果是,返回True,否则返回False
12.isdecimal(),isdigit(),isnumeric():
这三个函数都是用来判断输入的字符串是否只包含数字,但是三个函数的验证范围不一致,isdecimal()函数只能判断是否是普通数字(自然数),isdigit()函数可以除了可以验证自然数,还可以验证一些特殊的数字,比如②这样的数字。isnumeric()则还可以验证如二这样的汉字。
13.isprintable():
s=‘123\\tsdsds‘ print(s.isprintable())
该函数判断字符串中的字符能否全部打印出来,即字符串中是否存在诸如\\t,\\n等特殊字符。如果存在,则表示该字符串不能将其全部打印出来,函数将返回False,如果字符串中字符全部都能打印出来,则返回True.
14.isspace():
该函数判断给的的字符串是否全是空格,如果是,则返回true,否则返回False
15.istitle(),tltle():
istitle()判断给定的字符串是否是标题,即每一个单词的首字母是否是大写,如果是,返回true,否则返回false.tilte()函数则是将字符串转化为标题格式。
16.join(s):
s=‘hello world‘ s1=‘_‘.join(s) print(s1)
代码执行结果:
join函数可以以指定的字符插入到字符串中,以此来分隔字符串。
17.islower(),lower,isupper(),upper():
这几个函数用来判断字符串是否全是大小写以及把字符串全部转为大小写。
18.strip(st=None),lstrip(st=Node),rstrip(st=None)
s=‘xa‘ s.strip(‘91exxe‘) s.lstrip(‘91exxe‘) s.rstrip(‘91exxe‘)
这几个函数都是去掉字符串中指定的字符,其中strip是既可以从左边匹配,也可以从右边匹配,lstrip从左边匹配,rstrip从右边开始匹配。函数可以设置参数,用来指定匹配的字符序列,默认是去掉空格(包括\\t\\n).
19.maketrans(str1,str2),translate(str):
1 m=str.maketrans("aeiou","12345") 2 v="axbduewbidbw9triuebcqyeeqicbwq" 3 new_v=v.translate(m) 4 print(new_v)
naketrans(str1,str2)用来创建字符串之间的对应关系,该函数一般与translate(str)函数配合使用。translate(str)函数的参数就是maketrans(str1,str2)函数所创建的对应关系,在translate函数中,会使用该对应关系进行转换,即在字符串中出现了str1中的字符,那么通过translate函数将会转化成str2中的对应的字符。需要注意,str1和str2的长度必须一致才能转化。
20.partition(str),rpartition(str)
1 s=‘testadsddfg‘ 2 v=s.partition(‘s‘) 3 print(v) 4 s1=s.rpartition(‘s‘) 5 print(s1)
代码效果:
这两个函数会把字符串分成三部分,分隔方式是根据str来分隔partition(str)会从字符串的第一个位置开始找字符str,如果找到了第一个字符str,则以该字符作为分隔点,字符前面的内容作为第一部分,str作为第二部门,后面的内容作为第三部分,rpartition则是从字符串的最后一个位置开始向前找,找到第一个字符str,然后跟据str作为分隔符,将字符串分为3部分。如果遍历字符串都没有字符str,自函数返回的三部分包括字符串本身和两个空格。
21.split(str ,int),rsplit(str,int)
s=‘testadsddfg‘ v=s.split(‘s‘,2) print(v)
该函数是指定分隔次数。partition函数会找到第一个出现str字符就停止,但是split会根据int值在字符串中搜索出Int个str,再根据这些str将字符串分隔,如果整个字符串的str出现的次数少于int则按照str出现的最大次数进行分隔。同理,rsplit()是从字符串的末尾向前搜索。
22.splitlines(bool)
1 v1=s.splitlines(False) 2 v2=s.splitlines(True) 3 print(v1) 4 print(v2)
代码执行结果:
根据\\n来分隔字符串,若参数为False,则去掉\\n,若参数是True,则保留\\n.
23.swapcase():
1 s=‘Hello‘ 2 s1=s.swapcase() 3 print(s1)
该函数用来转换字符串的大小写,将字符串中的大写转为小写,小写转为大写。
24.isidentifier():
s=‘def‘ s1=s.isidentifier() print(s1)
判断字符串是否符合变量命名规则或者字符串是否是python关键字。如果符合命名规则或者是关键字,则返回true,否则返回False。
25.replace(str1,str2,int=Node):
1 s="alexalexalexalex" 2 s1=s.replace(‘ex‘,‘bbb‘) 3 s2=s.replace(‘ex‘,‘bbb‘,2) 4 print(s1) 5 print(s2)
该函数用str2替换字符串中的str1序列,默认是替换掉所有的str1序列,但可以通过增加参数来指定替换的次数。