muxuehan9201 发表于 2021-11-7 20:01:42

muxuehan9201 发表于 2021-11-7 20:03:00

傻眼貓咪 发表于 2021-11-7 20:05:03

因为你省略了代码
== 判断符不是这样用的

傻眼貓咪 发表于 2021-11-7 20:06:22

千万不要把系统当人看,它根本不明白人类思维,请用合法方式写代码(至少系统明白)

傻眼貓咪 发表于 2021-11-7 20:13:47

string = "ABCbananaDEF"
valid = lambda string: all(+string[-3:]])
print(valid(string))

jackz007 发表于 2021-11-7 20:17:16

本帖最后由 jackz007 于 2021-11-7 20:18 编辑

      试一下这个代码
s , p = 'a' + '' . join(string . 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)
      这个代码直接使用了楼主代码中的变量 string。

muxuehan9201 发表于 2021-11-8 00:22:49

muxuehan9201 发表于 2021-11-8 00:25:26

muxuehan9201 发表于 2021-11-8 00:26:27

muxuehan9201 发表于 2021-11-8 01:08:54

jackz007 发表于 2021-11-8 01:19:40

本帖最后由 jackz007 于 2021-11-8 01:20 编辑

for each in range(3,length-2):
            两侧必须对称
for each in range(3,length-3):
         这样写,每次判断以 string[ i ] 为中心的 7 个字符,注意,题目的条件说,每位密码的左右两边均有且只有三个大写字母,这就告诉我们,应该每次判断以 string[ i ] 为中心的 9 个字符,因为,秘码字符的两侧如果有第 4 个字符,那就一定是小写字母。这也是我为什么要在字符串的首尾个添加一个小写字母 'a' 的原因,好让判断始终如一,否则的话,首尾必须要特别处理。剩下的判断逻辑就已经非常简单了。

muxuehan9201 发表于 2021-11-8 19:49:46

页: [1]
查看完整版本: Python 20讲 第1题 自己的代码不知道为什么得不出结果,求大神帮忙看看哪里出了问题