1、输入一个字符串,统计其中大写字母,小写字母,数字各多少
s=input('s=') upper=0 lower=0 digit=0 for i in range(len(s)): if s[i]>='A' and s[i]<='Z': upper+=1 elif s[i]>='a' and s[i]<='z': lower+=1 elif s[i]>='0' and s[i]<='9': digit+=1 print('大写字母个数:',upper,'小写字母个数:',lower,'数字个数:',digit)
没什么好说的,循环遍历设置条件即可
2、判断一个字符串是否对称
def func(s): temp='' for i in range(len(s)-1,-1,-1): temp+=s[i] if temp==s: return True else: return False s='aabaa' print(func(s))
既然是题目,那么我们也不调库来写了,手动写一下即可,编写函数,使用for循环i初始为字符串的最末尾元素,然后步长-1,范围在-1,即0,循环结束的时候temp得到了传入的s字符串的倒序,此时判断两个字符串是否相等即可
3、实现endswitch功能
def MYendswitch(s,t): i= s.rfind(t) if i+len(t)==len(s): return True else: return False print(MYendswitch('1234','4'))
Python endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。
这里我们使用了rfind成员方法,返回t在s中最后一次出现的下标,此时就可以判断了
i就是t在s最后一次出现的下标,加上len(t)也就是t的长度,也就是3+1==len(s)也就是3+1==4,记住下标从0开始数数就行
4、查找字符串子串所在位置
def index(str,s): if s in str: t=len(s) i=0 while True: if s==str[i:t]: return i else: i+=1 t+=1 else: return -1 print(index('123456','56'))
编写index函数,第一个参数为需要查找的字符串,第二个参数为子串,先判断s子串是否在str内,如果不在直接返回-1即可;如果在,那么t获取s的长度,初始化i,写一个循环True,如果s子串等于str切片即一开始[0:t],也就是一个子串的大小,如果等于直接返回i;不等于那么就i+=1,t+=1,进行下一轮比较,也就是遍历,一轮一轮,最坏的情况下需要遍历整个字符串。
5、把字符串的大写字母变为小写字母,不得使用库函数
def lower(s): t=list(s) for i in range(len(s)): if s[i] >= 'A' and s[i] <= 'Z': t[i] = chr(ord(t[i]) + 32) return ''.join(t) s=input('s=') print(lower(s))
编写函数,接收一个字符串,t接收被list转换为列表的s,因为字符串无法更改,那么先转换为列表;for循环,循环条件为s的长度,遍历判断没什么好说的。当满足if的时候
t[i] = chr(ord(t[i]) + 32)这句话的意思是先把列表的字符使用ord函数转换为ascll,加上32,再使用chr函数转换为字符,最后赋值给列表的元素,一直循环。还有就是return ''.join(t)返回字符串,输入运行结果如下
第一次说Python,如有错误还请见谅,都是一些简单的字符串题,暂时没有逻辑可言