关于压缩和解压缩相关问题
题目如图代码如下:
s = input("请输入待解压字符串:")
ch = s
result = ''
for each in s:
if each.isdecimal():
for i in range(int(each)-1):
result += ch
else:
result += each
ch = each
print(f"解压后的字符串:{result}")
为啥输入:a99之后出现的不是99个a啊??? 你把99当成两个9处理,莫非你还指望他能给你算成9+9=99 cflying 发表于 2022-2-10 21:52
你把99当成两个9处理,莫非你还指望他能给你算成9+9=99
听君一席话,胜读十年书 >>> import re
>>> s="a99"
>>> re.findall("+|\d+",s)
['a', '99']
>>> t=re.findall("+|\d+",s)
>>> t*int(t)
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
>>>
为啥输入:a99之后出现的不是99个a啊???
因为你 for 循环一次只读取一个字符,而单个字符最大整数即为 9
所以你这里输入 a99 时,第一次循环,执行 else 加入第一个 a ,第二次循环执行 if 导致再加入 9-1 个 a
然后 第三次循环 再加入 9-1 个 a,加上最开始的一个 a 一共有 17 个 a wp231957 发表于 2022-2-11 08:54
>>> import re
>>> s="a99"
>>> re.findall("+|\d+",s)
谢谢啦,不过还没学到re函数{:5_109:}
页:
[1]