bol_in 2021-12-17 20:03 采纳率: 64.6%
浏览 67
已结题

Python 對字串進行切割

求該題目程式碼

(1)首先,輸入一串不超過50字元的字串(不得有空格)及一正整數K,兩者以一個空格為間隔
(2)去除字串間非英文字母的字元,例如the$sky@iS!soBlue 應轉換成theskyiSsoBlue
(3)再對字串做大小寫的互相轉換,例如theskyiSsoBlue 應轉換成 THESKYIsSObLUE
(4)對字串以每隔K個字元進行切割,最後一組若字元數不足K則無視
例如:當K=3時,THESKYIsSObLUE 應切割成THE、SKY、IsS、ObL、UE共計5組字串
(5)將每組切割好的字串進行順序反轉後,並以【/】作為間隔輸出。
例如:THE、SKY、IsS、ObL、UE應轉換並輸出UE/ObL/IsS/SKY/THE
==============
Sample input 1:
abcda 1

Sample output 1:
A/D/C/B/A
==============
Sample input 2:
abcDefgHiaaA 2

Sample output 2:
Aa/IA/Gh/EF/Cd/AB
==============
Sample input 3:
mynameisBig5666hehe 10

Sample output 3:
GHEHE/MYNAMEISbI
==============
Sample input 4:
iHaveAnApple 15

Sample output 4:
IhAVEaNaPPLE
==============
Sample input 5:
@H#hHhhhh12*4%H287 3

Sample output 5:
Hh/HHH/hHh


  • 写回答

3条回答 默认 最新

  • 笨鸟快飞呀 2021-12-17 20:40
    关注
    
    def analyse():
        data = input()
        datalist = data.split(' ')
    
        res = ''
        for i in datalist[0]:
            if (i>='a' and i<='z'):
                res += i.upper()
            elif  (i>='A' and i<='Z'):
                res += i.lower()
            else:
                pass
    
        # 分割
        res2 = []
        idnex = int(datalist[1])
        tmp = ''
        c = 0
        for i in res:
            if c % idnex == 0 and not c == 0:
                res2.append(tmp)
                tmp = i
            else:
                tmp += i
            c += 1
        res2.append(tmp)
    
        #
        res3 = res2.reverse()
        data3 = '/'.join(res2)
        print(data3)
    
    analyse()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月20日
  • 已采纳回答 12月20日
  • 创建了问题 12月17日

悬赏问题

  • ¥15 c语言数据结构高铁订票系统
  • ¥15 关于wkernell.PDB加载的问题,如何解决?(语言-c#|开发工具-vscode)
  • ¥15 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!
  • ¥15 (标签-python)
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄