鱼C论坛

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

第20课:函数。喷饭问题一枚

[复制链接]
发表于 2021-1-11 18:21:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Peteryo01223 于 2021-1-11 18:25 编辑

原题目:

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

我“直来直去”的思路,希望不会让大家喷饭:
  1. str1= ''' '''
  2. length = len(str1)

  3. for i in range(length): # 解决换行问题,导致统计不能顺利经行
  4.     if str[i] == '\n':
  5.         continue

  6.     if str1[i].islower() and str1[(i-1)].isuppwer() and str1[(i-2)].isuppwer()and str1[(i-3)].isuppwer()and str1[(i+1)].isuppwer()and str1[(i+2)].isuppwer() and str1[(i+3)].isuppwer():
  7.         print (i) # 我直来直去地对条件,予以如此翻译,行么?即:统计单个小写字母,且左右两边均有且只有三个大写字母。这个办法是不对,还是很笨,但可行?
  8.     else:
  9.         pass
复制代码


问题:
请问为什么这个傻傻的思路不行啊?
小甲鱼的答案,我目前还没看懂呢,看后我再继续提问。

谢谢各位的耐心。



小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-11 18:35:33 | 显示全部楼层
1. 代码可读性极差
2. 字符串中 第一个 字符左边没有字符,最后一个字符的右边也没有字符
3. 写代码是 模拟人的行为 ,你本人的思路都没有,就写出代码来,十有八九是错的,至少在这个代码里没有体现出个人的思路,纯粹就是生搬硬套。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-11 19:55:54 From FishC Mobile | 显示全部楼层
多想一想吧,怎么可能如此简单
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-12 08:52:23 | 显示全部楼层
本帖最后由 Peteryo01223 于 2021-1-12 09:05 编辑

改了下,成功了
不过,大家说的对,可读性极差
现在去读读小甲鱼的答案,我得学习大佬思路。
  1. str1= '''  '''
  2. length = len(str1)

  3. for i in range(length-5): # 解决换行问题,导致统计不能顺利经行
  4.     if i == '\n':
  5.         continue
  6.    
  7.     if str1[i].islower() and str1[(i+1)].isupper() and str1[(i+2)].isupper()and str1[(i+3)].isupper()and str1[(i+4)].islower()and str1[(i+5)].isupper() and str1[(i+6)].isupper() and str1[(i+7)].isupper() and str1[(i+8)].islower() :
  8. # 即:第 i 个字母小写,
  9. # 第 (i+1) 个字母大写,
  10. # 第 (i+2) 个字母大写,
  11. # 第 (i+3) 个字母大写,
  12. # 第 (i+4) 个字母小写,也就是密码的位置,
  13. # 第 (i+5) 个字母大写,
  14. # 第 (i+6) 个字母大写,
  15. # 第 (i+7) 个字母大写,
  16. # 第 (i+8) 个字母小写,

  17.         print (str1[i+4], end = '') #
  18.     else:
  19.         pass
复制代码

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

使用道具 举报

 楼主| 发表于 2021-1-12 09:52:03 | 显示全部楼层
wp231957 发表于 2021-1-11 19:55
多想一想吧,怎么可能如此简单

修改了一下,笨办法,貌似成功了~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-12 09:53:22 | 显示全部楼层
°蓝鲤歌蓝 发表于 2021-1-11 18:35
1. 代码可读性极差
2. 字符串中 第一个 字符左边没有字符,最后一个字符的右边也没有字符
3. 写代码是 模 ...

人的思路,不应该,首先是阅读原题目的思路么?否则,写Python,该怎么着手呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-12 11:56:08 | 显示全部楼层
Peteryo01223 发表于 2021-1-12 09:53
人的思路,不应该,首先是阅读原题目的思路么?否则,写Python,该怎么着手呢?


写程序之前先把它当作数学题来做一遍。
这题目说的清清楚楚, 每位密码的左右两边均 有且只有 三个大写字母,这句话就已经说明很多信息了。
  1. 1. 前三位 和 后三位 不可能是 密码
  2. 2. 如果 当前位 是密码,那么下一个 密码 肯定不在 当前位 的 后面 三位 里。
复制代码


你自己也说了 首先是 阅读题目 的思路,那么上述 两条明显透露的信息 是否应该出现在你的思路里呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 15:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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