零基础入门学习python第20课课后作业
为什么运行之后什么都不打印啊? 这里对于换行有点不太会操作就把换行取消了
没看懂,思路有点清奇,能复制下你的代码+标注吗?让我复制下来思考思考{:10_250:}{:10_250:} 本帖最后由 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)
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'
>>> 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) 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)。您的代码我也试了一下,也是什么都没有打印出来,不过还是谢谢您帮我一起试图解决这个问题。 森亦简 发表于 2022-6-4 23:06
我按照你的思路试了一小段,是可以运行的,但是你列表的范围可能规定的有点问题,我把他写成具体的值了 ...
你好,我看了一下您这个代码,也试了一下,确实是没问题的,但是对于中间的3<i<length-2的部分,就没法用具体的数字来写了,就导致还是运行之后什么都不打印。 jackz007 发表于 2022-6-4 23:31
谢谢!网上查了一些之前没学到的bif基本上能看懂您这个代码了! phoenix-z 发表于 2022-6-5 14:16
这个也不对啊,我重新试了一下,左边右边的字母取得是对的,比如a = '0123456789',i = 3, a[:i-1]= '012', ...
你确定??a=3,a[:2]是取aa,你怎么得到‘012’? kerln888 发表于 2022-6-5 15:52
你确定??a=3,a[:2]是取aa,你怎么得到‘012’?
哦哦不好意思,这里确实是我错了,脑子有点混乱了{:5_104:},抱歉抱歉。
页:
[1]