【问题标题】:Split numeric,strings,special characters in given string拆分给定字符串中的数字、字符串、特殊字符
【发布时间】:2020-11-08 19:09:00
【问题描述】:

给定一个由字母、数字和特殊字符组成的字符串 S。您需要编写一个程序将字符串拆分为三个不同的字符串 S1、S2 和 S3,这样字符串 S1 将包含 S 中存在的所有字母,字符串 S2 将包含 S 中存在的所有数字,并且 S3 将包含所有特殊的S 中出现的字符。字符串 S1、S2 和 S3 的字符顺序应与它们在输入中出现的顺序相同。

输入: 输入的第一行包含一个整数 T,它表示测试用例的数量。每个测试用例的第一行包含一个由字母、数字和特殊字符组成的字符串 S。 输出: 对于每个测试用例,在第一行打印包含 S 的所有字母的字符串 S1。在第二行打印包含所有数字的字符串 S2。在第三行打印字符串 S3,其中包含 S 中存在的所有特殊字符。

约束: 1

示例: 输入: 2 geeks01for02geeks03!!! **每天编码123456789## 输出: 极客 010203 !!! 每天编码 123456789 **## 我的代码:

enter code here
t=int(input())
a=[]
n=[]
st=[]
for _ in range(t):
    s=list(input())
    for i in s:
        if i.isalpha():
            a.append(i)
        
        elif i.isdigit():
            n.append(i)
        
        elif not i.isalnum():
            st.append(i)
    for i in a:
        print(i,end='')
    print('')    
    for i in n:
        print(i,end='')
    print('')    
    for i in s:
        print(i,end='')
    print('')   

我的代码是分隔字母、数字但不是特殊字符任何人都可以告诉我我的 python 代码有什么问题

【问题讨论】:

    标签: python string special-characters


    【解决方案1】:
    def splitString(str): 
    
    
        alpha = "" 
        num = "" 
        special = "" 
        for i in range(len(str)): 
            if (str[i].isdigit()): 
                num = num+ str[i] 
            elif((str[i] >= 'A' and str[i] <= 'Z') or
                (str[i] >= 'a' and str[i] <= 'z')): 
                alpha += str[i] 
            else: 
                special += str[i] 
    
        print(alpha) 
        print(num ) 
        print(special) 
    
    t=int(input())
    for i in range(t):
        s = input()
        splitString(s)
    

    【讨论】:

      【解决方案2】:

      在您最后一次打印特殊字符的 for 循环中,您将其循环到错误的列表中。改成

      for i in st:
         print(i)
      

      【讨论】:

        猜你喜欢
        • 2022-11-13
        • 1970-01-01
        • 2020-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多