鱼C论坛

 找回密码
 立即注册
查看: 1121|回复: 6

[已解决]小甲鱼20课课后作业问题

[复制链接]
发表于 2022-1-7 20:50:27 | 显示全部楼层    本楼为最佳答案   
islower() 或 isupper() 最好一个一个比较,否则不准确,比如:
  1. a = """
  2. AASDFFF
  3. HDTD
  4. #$%^&**@@@
  5. """

  6. b = "ABC AABBSS JKHK"

  7. print(a.isupper()) # True
  8. print(b.isupper()) # True
复制代码
可以看出以上结果,是也 True 不是也 True 这不是我们想要的,我的代码为:
  1. # 因为字符串太长,所以另外存放在 text.txt 中

  2. def isValid(s: str):

  3.     # 判断前第四个字符、后第四个字符、和中间字符是否都是小写
  4.     # 如:x _ _ _ x _ _ _ x
  5.     if not (s[0].islower() and s[-1].islower() and s[4].islower()): return False

  6.     # 判断前三个字符串和后三个字符串是否是大写
  7.     # 如:_ x x x _ x x x _
  8.     for i in s[1:4]+s[5:8]:
  9.         if not i.isupper():
  10.             return False

  11.     # 判断字符串是否有 9 个字符
  12.     return len(s) == 9

  13. f = open("text.txt", "r")
  14. text = f.read()

  15. length = len(text)
  16. res = []

  17. for i in range(length-4):
  18.     if(isValid(text[i:i+9])):
  19.         res.append(text[i+4])

  20. print(''.join(res))
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
甜蜜难在 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-1-8 16:52:41 | 显示全部楼层
甜蜜难在 发表于 2022-1-8 16:26
但是我也是按照这个思路来判断的啊。先判断中间字母是否小写,然后再判断前面三位和后面三位是否为大写, ...
  1. length = len(a)
  2. list = []
  3. for i in range(length):
  4.     if a[i] == '\n':
  5.         continue
  6.     if a[i].islower():
  7.         if a[i-3:i].isupper() and a[i-4].islower():
  8.             if a[i+1:i+4].isupper() and a[i+4].islower():
  9.                 list.append(a[i])
  10.                 print(a[i-4:i+4]) # 试试加多这一行代码你就明白了
  11.                 i += 1
  12. print(list)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-5 02:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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