鱼C论坛

 找回密码
 立即注册
查看: 1491|回复: 8

[已解决]27讲课后作业

[复制链接]
发表于 2021-11-13 10:26:27 | 显示全部楼层 |阅读模式

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

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

x
s = input("请输入一个字符串:")
    
res = []
for each in s:
    if res and res[-1].lower() == each.lower() and res[-1] != each:
        res.pop()
    else:
        res.append(each)
    
for each in res:
    print(each, end='')

这里的if 语句中 res是空的那res[-1]是什么呢

小甲鱼解析:这里比较难理解的应该是判断部分,它是先判断列表是否为空;如果不为空,则将列表中最后一个元素(即上一轮迭代放进去的字符)拿出来比对,大家都转换成小写,如果一样,那么说明它是同一个字母(此时可能是一个大写一个小写,两个都是大写,或者两个都是小写 3 种可能性);最后判断如果两者不相同,则说明是同一个字母的大小写。

判断列表为空是哪个? 上一轮迭代进入each中啊应该,和res没关系啊
最后这“最后判断如果两者不相同,则说明是同一个字母的大小写”都转换为小写字母了,哪应该两者相同为一个字母的大小写吧???
求助 蒙了
最佳答案
2021-11-13 11:02:48
山西李逵 发表于 2021-11-13 10:58
res[-1].lower()  ,上一轮的字符的小写

这个是什么意思呢,就没有给 res赋值啊

第一轮res空,and后面不会继续计算,直接进入else, else下面有 res.append(each),就会给res添加本轮字符。进入下一轮,res的[-1]就变成了上一轮的字符了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-13 10:56:26 | 显示全部楼层
本帖最后由 suchocolate 于 2021-11-13 10:58 编辑

1)单从列表从角度考虑,空列表用index取值会报错。IndexError: list index out of range
2)判断列表为空
ls = []
if ls:  # 当列表不空,if结果为True,进入if
    print('不空')
else:  # 当列表为空,if结果为False,进入else
    print('空')
3) res[-1].lower()  ,上一轮的字符的小写
4)each.lower(),这一轮字符的小写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-13 10:58:40 | 显示全部楼层
suchocolate 发表于 2021-11-13 10:56
1)但从列从角度考虑,空列表用index取值会报错。IndexError: list index out of range
2)
3) res[-1].l ...

res[-1].lower()  ,上一轮的字符的小写

这个是什么意思呢,就没有给 res赋值啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-13 11:02:48 | 显示全部楼层    本楼为最佳答案   
山西李逵 发表于 2021-11-13 10:58
res[-1].lower()  ,上一轮的字符的小写

这个是什么意思呢,就没有给 res赋值啊

第一轮res空,and后面不会继续计算,直接进入else, else下面有 res.append(each),就会给res添加本轮字符。进入下一轮,res的[-1]就变成了上一轮的字符了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-13 11:04:26 | 显示全部楼层
山西李逵 发表于 2021-11-13 10:58
res[-1].lower()  ,上一轮的字符的小写

这个是什么意思呢,就没有给 res赋值啊

建议你用pycharm,设置断点,debug 一步一步看,每次到哪,变量变成什么,都能看清楚,看一遍就都懂了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-13 11:19:12 | 显示全部楼层
suchocolate 发表于 2021-11-13 11:04
建议你用pycharm,设置断点,debug 一步一步看,每次到哪,变量变成什么,都能看清楚,看一遍就都懂了。

我还在学习 用的idle
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-13 12:00:23 | 显示全部楼层
山西李逵 发表于 2021-11-13 11:19
我还在学习 用的idle

初学也可以用pycharm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-15 16:07:44 | 显示全部楼层
suchocolate 发表于 2021-11-13 11:04
建议你用pycharm,设置断点,debug 一步一步看,每次到哪,变量变成什么,都能看清楚,看一遍就都懂了。

pycharm 怎么看debug
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-15 16:08:47 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 19:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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