鱼C论坛

 找回密码
 立即注册
查看: 1460|回复: 7

[已解决]课后20 为什么和小甲鱼不一样

[复制链接]
发表于 2022-5-26 21:03:53 | 显示全部楼层 |阅读模式

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

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

x
cc = '''ACFlCTLIQlAIVMTqHFkswqbDDHtpgcWaXSSglUYKE
lqNsYCyaQXBzrFUbkAUAWAKrDgDtA'''
n = len(cc)
mi = ''

for i in range(n-7):
   
   
    if   cc[i] == '\n':
        continue
    elif cc[i].isupper():
        if cc[i+1]=='\n':
            continue
        elif cc[i+1].isupper():
            if cc[i+2]=='\n':
                continue
            elif cc[i+2].isupper():
                if cc[i+3]=='\n':
                    continue
                elif cc[i+3].islower():
                    if cc[i+4]=='\n':
                        continue
                    elif cc[i+4].isupper():
                        if cc[i+5]=='\n':
                            continue
                        elif cc[i+5].isupper():
                            if cc[i+6]=='\n':
                                continue
                            elif cc[i+6].isupper():
                                mi = mi[0:]+ cc[i+3]
                             
   
print('密码',mi)
  
密码  llpuiallouovvhezfbilbjiirmsqqxthtgcnkdljoasncexw

求教给位大佬 为什么我得到的答案和小甲鱼不一样
                                
最佳答案
2022-5-27 09:54:22
潜沙56988 发表于 2022-5-26 22:18
反斜杠加n 就是空格  这样写好像就只判断第一个字母是不是大写吧?我记得    这题我都蒙了也不知道那错了


\n 是换行符,不是空格,因为你字符在文本中有多行

所以导致每行最后一个 \n 换行符也会算入判断密码中,只需要在 if 中多加一个判断条件跳过 \n 即可

或者可以用字符串方法 .replace() 将 "\n" 换行符替换为 "" 空字符串即可

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-26 21:06:46 | 显示全部楼层
本帖最后由 jackz007 于 2022-5-26 21:28 编辑

      你应该先交代一下题目内容和要求
cc = '''ACFlCTLIQlAIVMTqHFkswqbDDHtpgcWaXSSglUYKE
lqNsYCyaQXBzrFUbkAUAWAKrDgDtA'''
s , p = 'a' + '' . join(cc . 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-5-26 21:18:59 | 显示全部楼层
好巧,我也在做这道题。
应该是只考虑了小写字母前后三个字母是大写的,没考虑再往前和再往后的一个字母不能是大写的
还有文本里是有空格的,应该要跳过这些空格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-26 21:52:38 | 显示全部楼层
def count(x):
   for i in range(len(x)):
       if x[i].islower() and x[i-3:i].isupper() and x[i+1:i+4].isupper() and not x[i-4].isupper() and not x[i+4].isupper():
           print(x[i],end="")

这是我写的,我把空格都删了就是正确答案了
但是在程序里,我也不知道怎么跳过这些空格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-26 22:18:55 From FishC Mobile | 显示全部楼层
森亦简 发表于 2022-5-26 21:52
这是我写的,我把空格都删了就是正确答案了
但是在程序里,我也不知道怎么跳过这些空格{:10 ...

反斜杠加n 就是空格  这样写好像就只判断第一个字母是不是大写吧?我记得    这题我都蒙了也不知道那错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-26 22:22:22 From FishC Mobile | 显示全部楼层
森亦简 发表于 2022-5-26 21:52
这是我写的,我把空格都删了就是正确答案了
但是在程序里,我也不知道怎么跳过这些空格{:10 ...

  刚试了一下 还真差个空格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-26 22:24:53 From FishC Mobile | 显示全部楼层
jackz007 发表于 2022-5-26 21:06
你应该先交代一下题目内容和要求

就是课后Python20课的最后动手试一试,  看了你们的方程  感觉这题的要求有点不严谨了都
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-27 09:54:22 | 显示全部楼层    本楼为最佳答案   
潜沙56988 发表于 2022-5-26 22:18
反斜杠加n 就是空格  这样写好像就只判断第一个字母是不是大写吧?我记得    这题我都蒙了也不知道那错了


\n 是换行符,不是空格,因为你字符在文本中有多行

所以导致每行最后一个 \n 换行符也会算入判断密码中,只需要在 if 中多加一个判断条件跳过 \n 即可

或者可以用字符串方法 .replace() 将 "\n" 换行符替换为 "" 空字符串即可

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 03:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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