python实现把以下字符串先用split函数分成一个列表,再把这个列表中的英文大小写识别,要求出现的第一个英文大写单词不算,从第二个开始,把大写换成小写。

s="Hello world is Idon"
比如什么这个字符串就要输出idon前面的Hello就不变

s = "Hello world is Idon"
words = s.split()  # 使用 split() 函数将字符串分割成单词列表

first_upper = True  # 是否是第一个大写单词的标志

for i, word in enumerate(words):
    if word.isalpha() and word.isupper():  # 判断单词是否全是字母且全是大写
        if first_upper:
            first_upper = False
        else:
            words[i] = word.lower()  # 如果不是第一个大写单词,将其变成小写

print(' '.join(words))  # 输出新字符串,使用 join() 函数将单词组装起来

本身就是内置的字符串方法,不用写代码吧
试试

s="Hello world is Idon"
print(s.capitalize())
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7791011
  • 你也可以参考下这篇文章:python的split()函数用来计算文本中单词的个数
  • 除此之外, 这篇博客: python 实现字符串split替换的方法中的 自己写一个函数实现字符串的split替换方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    过程和步骤都写在注释上了, 利用了递归思想
    完整代码:

    txt = "Google#Runoob#Taobao#Facebook######"
    list1 = []
    
    # 拿到分隔符号
    symbol = input("请输入分隔符")
    
    
    # 定义函数
    def my_split(txt):
        # 如果指定的分隔符存在
        if symbol in txt:
            # 就找到分隔符的下标
            subscript = txt.find(symbol)
            # 如果被分割的内容不是空
            if txt[0:subscript] != "":
                # 就添加进列表里
                list1.append(txt[0:subscript])
                # 跟新字符串,去掉已经被添加到列表里的内容
                txt = txt[subscript + 1:]
                # 继续调用本函数 , 判断更新后的txt
                my_split(txt)
        # 如果分隔符不存在,那就是省最后一部分内容le
        else:
            # 添加进列表
            list1.append(txt)
        # 反不反回都行 , 全局变量list1已经改变
        return list1
    
    
    print(my_split(txt))
    
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^