鱼C论坛

 找回密码
 立即注册
查看: 2397|回复: 6

[已解决]027讲课后作业代码勘误

[复制链接]
发表于 2022-4-21 13:25:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第27讲作业,我写的和小甲鱼不一样
题目:一个整理好的字符串中,两个相邻字符 s[j] 和 s[j+1],其中 0 <= j <= s.length - 2,要满足如下条件:
若 s[j] 是小写字符,则 s[j+1] 不可以是相同的大写字符
若 s[j] 是大写字符,则 s[j+1] 不可以是相同的小写字符
如果 s[j] 和 s[j+1] 满足以上两个条件,则将它们一并删除
words = input("请输入字符串:")
s = [i for i in words]

for j in range(0,len(s)-2):
    if s[j] == s[j+1].swapcase():
        s.pop(j)
        s.pop(j+1)

for each in s:
    print(each,end='')
然后报错是这个:
Traceback (most recent call last):
  File "C:\Users\Zhou Yiyun\Desktop\Python\作业\第027讲-整理字符串.py", line 5, in <module>
    if s[j] == s[j+1].swapcase():
IndexError: list index out of range
>>> 
为什么会超出范围??
最佳答案
2022-4-21 15:10:49
Ari小虎鱼 发表于 2022-4-21 15:04
就是将字符串中每一个字母放到s列表中

pop之后从原来列表里删除了啊  数据不够了,索引超出范围,你应该再复制个列表,不要再原来的列表里操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-21 13:48:29 | 显示全部楼层
你的s是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-21 15:04:16 | 显示全部楼层

就是将字符串中每一个字母放到s列表中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-21 15:10:49 | 显示全部楼层    本楼为最佳答案   
Ari小虎鱼 发表于 2022-4-21 15:04
就是将字符串中每一个字母放到s列表中

pop之后从原来列表里删除了啊  数据不够了,索引超出范围,你应该再复制个列表,不要再原来的列表里操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-24 17:32:04 | 显示全部楼层
代码小白liu 发表于 2022-4-21 15:10
pop之后从原来列表里删除了啊  数据不够了,索引超出范围,你应该再复制个列表,不要再原来的列表里操作

pop之后s的长度不应该跟着变么?(对不起我是小白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-24 19:38:50 | 显示全部楼层
Ari小虎鱼 发表于 2022-4-24 17:32
pop之后s的长度不应该跟着变么?(对不起我是小白

第一次循环就确定了循环几次啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-25 07:43:58 | 显示全部楼层
代码小白liu 发表于 2022-4-24 19:38
第一次循环就确定了循环几次啊

好的吧,我再改改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 16:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表