涉及知识点:
- 字符串相关操作
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
string=input("请输入一个字符串:")
al=0
nu=0
sp=0
ot=0
for i in range(0,len(string)):
c=string[i]
if c.isalpha():
al+=1
elif c.isspace():
sp+=1
elif c.isdigit():
nu+=1
else:
ot+=1
i+=1
print("字母:%d 数字:%d 空格:%d 其他:%d"%(al,nu,sp,ot))
当一个变量是字符串类型时,我们可以用类似于C语言中的方法:
变量名[下标]
来访问字符串中某一个字符
我们也可以用:
变量名[下标1:下标2]
来访问某一段子串
下面给出一些字符串常用操作函数:
方法 | 作用 |
---|---|
string.center(w) | 返回一个原字符串居中,左右用空格填充至总长度为w的字符串 |
string.count(string2,beg=0,end=len(string)) | 统计string[beg:end]中string2出现的次数(beg和end可缺省) |
string.decode(encoding="UTF-8",errors="ignore") | 用指定的编码形式解码字符串 |
string.expandtabs(tabsize=4) | 将string中tab换为tabsize个空格 |
string.find(string2,beg=0,end=len(string)) | 在string[beg:end]中查找string2是后包含在其中,如果存在,返回开始的下标,不存在返回-1 |
string.index(string2,beg=0,end=len(string)) | 和find类似,但是如果string2不存在会报异常 |
string.rfind(string1,beg=0,end=len(string)) | 类似于find(),返回的是最后一个匹配项的起始下标 |
string.isalpha() | 判断string是否不为空,且所有字符都是数字 |
string.isalnum() | 判断string是否不为空,且所有字符都是字母或数字 |
string.isdecimal() | 判断string是否不为空,且都是十进制数 |
string.isdigit() | 判断string是否不为空,且都是数字 |
string.islower() | 判断string是否存在区分大小写的字符,且都是小写 |
string.isspace() | 判断string是否不为空,且都是空格 |
string.isupper() | 判断string是否存在区分大小写的字符,且都是大写 |
string.ljust(w) | 返回将string左对齐,用空格将长度补齐至w的新字符串 |
string.rjust(w) | 返回将string右对齐,用空格将长度补齐至w的新字符串 |
string.join(seq) | 用string作分隔符,将seq合并为一个字符串 |
string.lower() | 将string中所有大写字符转化为小写字符 |
string.upper() | 将string中小写字母转化为大写 |
string.capitalize() | 将string的首字符大写 |
string.swapcase() | 反转string中的大小写字符 |
string.lstrip() | 删除string中左边的空格 |
string.strip() | 删除string的开头和结尾的全部空格 |
string.rstrip() | 删除右边的所有空格 |
max(string) | 返回string中最大的字母 |
min(string) | 返回string中最小的字母 |
string.replace(str1,str2,num=string.count(str1)) | 将string中的str1换为str2,替换次数为num |
string.split(str="",num=string,count(str)) | 用str将string分隔为多个部分,分隔次数为num |
string.startswith(obj,beg=0,end=len(string)) | 判断string[beg:end]是否为obj开头 |
string.endswith(obj,beg=0,end=len(string)) | 判断string[beg:end]是否是以obj结尾 |