Python字符串题目

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,如有错误还请见谅,都是一些简单的字符串题,暂时没有逻辑可言

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值