鱼C论坛

 找回密码
 立即注册
查看: 1601|回复: 10

[已解决]零基础入门学习python第20课课后作业

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

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

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

x
48T15VIGS@AZ}]{04ON~UBO.png )N97C`3E95C}}@L77O`YS.png
为什么运行之后什么都不打印啊?
最佳答案
2022-6-4 23:31:40
a = <字符串>
s , p = 'a' + '' . join(a . split('\n')) + 'a' , ''
for k in range(4 , len(s) - 4):
    if s[k - 4] . islower() and s[k - 3 : k] . isupper() and s[k] . islower() and s[k + 1 : k + 4] . isupper() and s[k + 4] . islower():
        p += s[k]
print(p)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-6-4 21:53:33 | 显示全部楼层
这里对于换行有点不太会操作就把换行取消了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-4 22:49:01 | 显示全部楼层
没看懂,思路有点清奇,能复制下你的代码+标注吗?让我复制下来思考思考
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-4 22:57:25 | 显示全部楼层
本帖最后由 kerln888 于 2022-6-4 23:16 编辑

按你的思路改了下,对于i=3,需要判断左边和右边三个是大写字母,右边的第四个字母是小写。i=length-3的话,需要判断左边和右边三个是大写字母,左边的第四个字母是小写。其他的需要判断左边和右边三个是大写字母,左边和右边的第四个字母是小写。你左边右边的字母没取对。你这个思路有个问题,第三种情况,如果左边第四个是小写,那么右边第四个是大写,也会打印i,同理右边第四个是小写,左边是大写也会打印i,和要求不符。应该分别判断。
a = 'aADHjLMHcFGDHHvIfdGGHbHHHvHHH'

length = len(a)
for i in range(length):
    if i > 2 and i < length-2:
        if i == 3 and a[i].islower():
            b = a[:i]+a[i+1:i+4]
            c = a[:i]+a[i+1:i+5]
            if b.isupper() and c.isupper()==False:
                print(i)
        elif i == length-3 and a[i].islower():
            b = a[i-3:i] + a[i+1:i+4]
            c = a[i-4:i] + a[i+1:i+5]
            if b.isupper() and c.isupper()==False:
                print(i)
        else:
            if a[i].islower():
                b = a[i-3:i] + a[i+1:i+4]
                c = a[i-4:i] + a[i+1:i+5]
                if b.isupper() and c.isupper()==False:
                    print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-4 23:06:46 | 显示全部楼层
a = input("请输入字符串:")
lenth = len(a)
for i in range(lenth):
    if i>2 and i<lenth-2:
        if i==3 and a[i].islower():  
            b = a[:3]+a[4:7]
            c = a[:3]+a[4:8]
            if b.isupper() and c.isupper()== False:
                print(a[3])
    

我按照你的思路试了一小段,是可以运行的,但是你列表的范围可能规定的有点问题,我把他写成具体的值了你可以参考参考
后面的要改也应该就是相对应的加一或者减一了

下面是我测试的结果:
请输入字符串:AAAiAAAb
i
i
>>> b
'AAAAAA'
>>> c
'AAAAAAb'
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-4 23:31:40 | 显示全部楼层    本楼为最佳答案   
a = <字符串>
s , p = 'a' + '' . join(a . split('\n')) + 'a' , ''
for k in range(4 , len(s) - 4):
    if s[k - 4] . islower() and s[k - 3 : k] . isupper() and s[k] . islower() and s[k + 1 : k + 4] . isupper() and s[k + 4] . islower():
        p += s[k]
print(p)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-5 14:16:38 | 显示全部楼层
kerln888 发表于 2022-6-4 22:57
按你的思路改了下,对于i=3,需要判断左边和右边三个是大写字母,右边的第四个字母是小写。i=length-3的话 ...

这个也不对啊,我重新试了一下,左边右边的字母取得是对的,比如a = '0123456789',i = 3, a[:i-1]= '012',a[i:i+3]= '456',加起来就是‘012456’,是符合我的想法的,问题不在这里,而且i是a中每个字符对应的位置,应该print(a[i])。您的代码我也试了一下,也是什么都没有打印出来,不过还是谢谢您帮我一起试图解决这个问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-5 14:25:57 | 显示全部楼层
森亦简 发表于 2022-6-4 23:06
我按照你的思路试了一小段,是可以运行的,但是你列表的范围可能规定的有点问题,我把他写成具体的值了 ...

你好,我看了一下您这个代码,也试了一下,确实是没问题的,但是对于中间的3<i<length-2的部分,就没法用具体的数字来写了,就导致还是运行之后什么都不打印。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-5 14:48:16 | 显示全部楼层

谢谢!网上查了一些之前没学到的bif基本上能看懂您这个代码了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-5 15:52:04 | 显示全部楼层
phoenix-z 发表于 2022-6-5 14:16
这个也不对啊,我重新试了一下,左边右边的字母取得是对的,比如a = '0123456789',i = 3, a[:i-1]= '012', ...

你确定??a=3,a[:2]是取a[0]a[1],你怎么得到‘012’?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-5 16:37:32 | 显示全部楼层
kerln888 发表于 2022-6-5 15:52
你确定??a=3,a[:2]是取a[0]a[1],你怎么得到‘012’?

哦哦不好意思,这里确实是我错了,脑子有点混乱了,抱歉抱歉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 00:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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