hiocnm 发表于 2020-8-11 17:04:23

第20讲作业

为什么我这段代码运行不了啊{:10_282:}


1. 请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
    a) 每位密码为单个小写字母
    b) 每位密码的左右两边均有且只有三个大写字母

str1 = '''输入的字符串'''
passwd = []
countA = 0 #判断前面大写字母
countB = 0 #判断后面大写字母
length = len(str1)

for i in range(length):
    if str1 == '\n':
      continue
    if (str1.isupper()) and (str1.isupper()):
      countA += countA
      countB += countB
      if (countA == 3) and (countB == 3) and (str1.islower()):
            passwd.append(str1)
print(passwd)

求资专用 发表于 2020-8-11 17:06:41

你的countA和B在判断每位的时候不重新置零的吗?

zltzlt 发表于 2020-8-11 17:10:12

这样行不行:

str1 = '''输入的字符串'''
passwd = []
length = len(str1)

# 从第 4 个字符开始遍历到倒数第 4 个字符
for i in range(3, length - 4):
    if str1 == '\n':
      continue
    # 每位密码的左右两边均有三个大写字母
    if (str1.isupper()) and (str1.isupper()) and (str1.isupper()) \
            and (str1.isupper()) and (str1.isupper()) and (str1.isupper()):
      # 每位密码为单个小写字母
      if str1.islower():
            # 每位密码的左右两边只有三个大写字母
            if str1.islower() and str1.islower():
                passwd.append(str1)
print(passwd)

zltzlt 发表于 2020-8-11 17:10:38

求资专用 发表于 2020-8-11 17:06
你的countA和B在判断每位的时候不重新置零的吗?

这个问题不是这样解决的吧……
页: [1]
查看完整版本: 第20讲作业