Python字符串切片多输入测试异常:如何匹配双场景预期输出?
解决Python字符串切片问题
哎,我一眼就瞅出来问题在哪了——你现在的代码完全没用到输入的start_index和end_index啊!那个[::1]其实是把整个字符串原封不动地复制了一遍,所以不管你输入什么索引,结果都不会按照你的预期变化。
修复方案
把赋值sub_lyric的那一行改成直接用输入的两个索引做切片:
start_index = int(input()) end_index = int(input()) rhyme_lyric = 'The cow jumped over the moon.' sub_lyric = rhyme_lyric[start_index:end_index] # 这里是关键修改 print(sub_lyric)
为什么这样能行?
Python的字符串切片语法是[起始索引:结束索引],它遵循左闭右开的规则:
- 包含起始索引对应的字符
- 不包含结束索引对应的字符
咱们来验证你的两个测试场景:
- 输入4和7:
rhyme_lyric[4:7]会取索引4、5、6的字符,也就是c、o、w,输出正好是cow - 输入8和14:
rhyme_lyric[8:14]取索引8到13的字符,对应j、u、m、p、e、d,输出就是jumped
这样修改之后,就能完美匹配你想要的两种场景啦!
内容的提问来源于stack exchange,提问作者Randall McGrath
相关产品推荐
相关产品推荐

