phoenix-z 发表于 2022-6-4 21:52:32

零基础入门学习python第20课课后作业


为什么运行之后什么都不打印啊?

phoenix-z 发表于 2022-6-4 21:53:33

这里对于换行有点不太会操作就把换行取消了

森亦简 发表于 2022-6-4 22:49:01

没看懂,思路有点清奇,能复制下你的代码+标注吗?让我复制下来思考思考{:10_250:}{:10_250:}

kerln888 发表于 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.islower():
            b = a[:i]+a
            c = a[:i]+a
            if b.isupper() and c.isupper()==False:
                print(i)
      elif i == length-3 and a.islower():
            b = a + a
            c = a + a
            if b.isupper() and c.isupper()==False:
                print(i)
      else:
            if a.islower():
                b = a + a
                c = a + a
                if b.isupper() and c.isupper()==False:
                  print(i)

森亦简 发表于 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.islower():
            b = a[:3]+a
            c = a[:3]+a
            if b.isupper() and c.isupper()== False:
                print(a)
   

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

下面是我测试的结果:

请输入字符串:AAAiAAAb
i
i
>>> b
'AAAAAA'
>>> c
'AAAAAAb'
>>>

jackz007 发表于 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 . islower() and s . isupper() and s . islower() and s . isupper() and s . islower():
      p += s
print(p)

phoenix-z 发表于 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= '456',加起来就是‘012456’,是符合我的想法的,问题不在这里,而且i是a中每个字符对应的位置,应该print(a)。您的代码我也试了一下,也是什么都没有打印出来,不过还是谢谢您帮我一起试图解决这个问题。

phoenix-z 发表于 2022-6-5 14:25:57

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

你好,我看了一下您这个代码,也试了一下,确实是没问题的,但是对于中间的3<i<length-2的部分,就没法用具体的数字来写了,就导致还是运行之后什么都不打印。

phoenix-z 发表于 2022-6-5 14:48:16

jackz007 发表于 2022-6-4 23:31


谢谢!网上查了一些之前没学到的bif基本上能看懂您这个代码了!

kerln888 发表于 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]是取aa,你怎么得到‘012’?

phoenix-z 发表于 2022-6-5 16:37:32

kerln888 发表于 2022-6-5 15:52
你确定??a=3,a[:2]是取aa,你怎么得到‘012’?

哦哦不好意思,这里确实是我错了,脑子有点混乱了{:5_104:},抱歉抱歉。
页: [1]
查看完整版本: 零基础入门学习python第20课课后作业