【问题描述】下面的描述字符串的方法称为速记符:
1."a-d" : 代表ASCII码在a和b之间的所有字符构成的连续字符串。其中必有a<b。
2."a-b-c" : 代表ASCII码在a和b, 再到c之间的所有字符构成的连续字符串。其中必有a<b<c。
例如:"a-c"代表字符串"abc","a-z"代表字符串"abcdefghhijklmnopqrstuvwxyz","a-c-g"代表字符串"abcdefg",等等。
在字符串开始和结尾处的'-'不做处理。 编写函数expand(s1),将字符串s1中的速记符号加以扩展形成等价的完整串.允许处理大小写字母和数字,并可以处理诸如a-b-c与a-z0-9与-a-z等情况.
编写程序,使用函数expand,将输入的字符串s1,进行处理,将结果输出.正确安排好前导和尾随的-.
【输入形式】控制台输入一行,即为s1的内容.可以含有空格,制表符,换行符.
【输出形式】控制台输出变换后的s1.
【样例输入】toooold-f0-8 A-F
【样例输出】tooooldef012345678 ABCDEF
【样例说明】输出对输入中的d-f,0-8,A-F进行了扩展.
Python扩展速记符 要求用for循环,if语句
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 辉煌仪奇 2021-10-25 18:51关注
# s = 'toooold-f0-8 A-F' s=input() import re res = re.findall('\w{1}-\w{1}', s) for m in res: st = m.split('-')[0] ed = m.split('-')[1] if st.isdigit() and ed.isdigit(): v = ''.join(list(map(str, range(int(st), int(ed) + 1)))) else: v = ''.join([chr(x) for x in range(ord(st), ord(ed) + 1)]) s = s.replace(m, v) print(s)
有帮助请点击右上角采纳,有问题继续交流,你的采纳是对我回答的最大的肯定和动力
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求一份华为esight平台V300R009C00SPC200这个型号的api接口文档
- ¥15 就很莫名其妙,本来正常的Excel,突然变成了这种一格一页
- ¥15 字符串比较代码的漏洞
- ¥15 欧拉系统opt目录空间使用100%
- ¥15 ul做导航栏格式不对怎么改?
- ¥20 用户端如何上传图片到服务器和数据库里
- ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
- ¥30 vivado封装时总是显示缺少一个dcp文件
- ¥100 pxe uefi启动 tinycore
- ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下