第020讲最后一题可以这样写不
str1 = '''ABSaDKSbRIHcRHGcdDIF'''
length=len(str1)
for i in range(3,length-3):
if str1.islower() and str1.isupper() and str1.isupper()\
and str1.isupper() and str1.isupper() and str1.isupper()\
and str1.isupper() and not str1.isupper() and not str1.isupper():
print(str1,end='')
本帖最后由 sunrise085 于 2020-8-16 00:09 编辑
不可以,会溢出。
你写的循环中, i 的范围是3~length-3,但是if中出现了 i+4 和 i-4
当 i = length - 3 的时候,i+4 就溢出了
当 i = 3 的时候,i-4为最后一个字符,显然也不是你想要的。 sunrise085 发表于 2020-8-16 00:05
不可以,会溢出。
你写的循环中, i 的范围是3~length-3,但是if中出现了 i+4 和 i-4
当 i = length - 3...
这样改能行吗:
str1 = '''ABSaDKSbRIHcRHGcdDIF'''
length=len(str1)
for i in range(3,length-3):
if i==3:
if str1[:3].isupper() and str1.islower() and str1.isupper():
print(str1,end='')
elif i+3==length:
if str1[-3:].isupper() and str1[-4].islower() and str1[-7:-5].isupper():
print(str1[-4],end='')
else:
if str1.islower() and str1.isupper() and str1.isupper()\
and str1.isupper() and str1.isupper() and str1.isupper()\
and str1.isupper() and not str1.isupper() and not str1.isupper():
print(str1,end='')
qq275055984 发表于 2020-8-16 01:26
这样改能行吗:
小朋友,你为什么不自己去做测试?
小朋友,要把问题考虑全面。
规则是一个小写字母的前后各有且仅有3个大写字母,大写字母个数不能多也不少。自己再查一下程序的逻辑漏洞吧
页:
[1]