新版PYTHON第32课最后一道大题,求解!
words = input('请输入待解压字符串:')
decompact = ''
mix = ''
for i in range(len(words)-1,0,-1):
if words.isalpha():
if i == len(words) -1:
decompact = ''.join(])
elif words.isdecimal():
continue
elif words.isalpha():
decompact = ''.join(])
else:
for J in range(int(words)):
mix = ''.join(])
decompact = ''.join()
mix = ''
decompact = decompact[::-1]
print('解压后的字符串:{}'.format(decompact))
代码如上,为何我输入FFI4SSHC6,得到的结果是FIIIISSHCCCCCC,少了一个F呢??
本帖最后由 sfqxx 于 2023-4-18 22:31 编辑
在解压字符串的循环中,由于计数是从字符串最后一个字符开始的,导致对于第一个字母需要单独处理。所以对于输入的字符串FFI4SSHC6,需要在循环外先将第一个字符加入到解压后的字符串中
修改代码如下:
words = input('请输入待解压字符串:')
decompact = words # 添加第一个字符
mix = ''
for i in range(len(words)-1,0,-1):
if words.isalpha():
if i == len(words) -1:
decompact = ''.join(])
elif words.isdecimal():
continue
elif words.isalpha():
decompact = ''.join(])
else:
for J in range(int(words)):
mix = ''.join(])
decompact = ''.join()
mix = ''
decompact = decompact[::-1]
print('解压后的字符串:{}'.format(decompact))
输出结果为:`FFIIIISSHCCCCCC`,和预期结果相同,不再少了字母 F。 你好!你在处理第一个字母时遇到了问题。在当前的代码中,你并没有处理到字符串的第一个字符(索引为0的字符),因此在处理过程中丢失了一个 'F'。
为了修复这个问题,你可以将循环的范围从 1 开始,即将 range(len(words)-1, 0, -1) 改为 range(len(words)-1, -1, -1)。
以下是修改后的代码:
words = input('请输入待解压字符串:')
decompact = ''
mix = ''
for i in range(len(words)-1, -1, -1):
if words.isalpha():
if i == len(words) -1:
decompact = ''.join(])
elif words.isdecimal():
continue
elif words.isalpha():
decompact = ''.join(])
else:
for J in range(int(words)):
mix = ''.join(])
decompact = ''.join()
mix = ''
decompact = decompact[::-1]
print('解压后的字符串:{}'.format(decompact))
现在,当你输入 "FFI4SSHC6" 时,输出结果将是 "FFIIIISSHCCCCCC"。 sfqxx 发表于 2023-4-18 22:28
在解压字符串的循环中,由于计数是从字符串最后一个字符开始的,导致对于第一个字母需要单独处理。所以对于 ...
我把你的代码跑了一遍,结果是FIIIISSHCCCCCCF。
应该在最后循环结束后,加一行:decompact = ''.join(])
忘记range()是左闭右开了,谢谢大佬
不吃辣的雾都人 发表于 2023-4-18 22:43
我把你的代码跑了一遍,结果是FIIIISSHCCCCCCF。
应该在最后循环结束后,加一行:decompact = ''.join([ ...
我的答案没有问题呀,为什么不给我最佳{:10_266:} isdkz 发表于 2023-4-18 22:46
我的答案没有问题呀,为什么不给我最佳
他先回复,就他最佳啦。也很感谢你的帮助,谢谢大佬{:9_217:} 不吃辣的雾都人 发表于 2023-4-18 23:43
他先回复,就他最佳啦。也很感谢你的帮助,谢谢大佬
懂了,下次我不测试直接回复,看谁的gpt快{:10_256:} isdkz 发表于 2023-4-18 23:45
懂了,下次我不测试直接回复,看谁的gpt快
{:9_227:} 渔币 {:10_256:}{:10_256:}膜拜大佬们 isdkz 发表于 2023-4-18 23:45
懂了,下次我不测试直接回复,看谁的gpt快
{:10_321:}
页:
[1]