鱼C论坛

 找回密码
 立即注册
查看: 2806|回复: 0

第二十讲课后题最后一题

[复制链接]
发表于 2014-1-15 17:53:07 | 显示全部楼层 |阅读模式

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

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

x
temp = input('''拷贝过来的字符串:''')
countA = 0
countB = 0
countC = 0
countD = 0
for each in temp:
    if each.isupper():
        if countC == 1:
            countD += 1

        else:
            countA += 1

    if countA == 3 and each.islower():
        countB = 1
        countA = 0
        target = each
    if countB == 1 and each.isupper():
        countC = 1
        countB = 0
    if countD == 3 and each.islower():
        print(target)
    countC = 0
    countD = 0


为什么我的代码打印不出东西啊。我看了半天,觉得思路没错啊。跟参考答案好像也差不多嘛。帮忙在源代码上修改一下呗

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

使用道具 举报

发表于 2014-1-16 00:06:39 | 显示全部楼层
把你的思路写成文字伪代码,你就能找到问题所在了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-16 15:11:45 | 显示全部楼层

length = len(str1)
for i in range(length):
跟直接for each in temp一样的吧?
continue也只是为了节省运算吧?
为什么我的就是打不出东西来呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-16 15:49:45 | 显示全部楼层
FavouritePython 发表于 2014-1-16 15:11
length = len(str1)
for i in range(length):
跟直接for each in temp一样的吧?

continue不是为了节省运算,是为了不运算下边的语句。

请尝试为以下代码写注释:
  1. str1 = '''拷贝过来的字符串'''
  2. countA = 0
  3. countB = 0
  4. countC = 0
  5. length = len(str1)
  6. for i in range(length):
  7.     if str1[i] == '\n':
  8.         continue
  9.     if str1[i].isupper():
  10.         if countB == 1:
  11.             countC += 1
  12.             countA = 0
  13.         else:
  14.             countA += 1
  15.         continue
  16.     if str1[i].islower() and countA == 3:
  17.         countB = 1
  18.         countA = 0
  19.         target = i
  20.         continue
  21.     if str1[i].islower() and countC == 3:
  22.         print(str1[target], end='')
  23.     countA = 0
  24.     countB = 0
  25.     countC = 0
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-16 16:18:15 | 显示全部楼层
小甲鱼 发表于 2014-1-16 15:49
continue不是为了节省运算,是为了不运算下边的语句。

请尝试为以下代码写注释:

恩。我的代码加了continue也能正常运行了。这是为什么?for的迭代也是个循环吧?语句都是正常的,怎么不加continue就没结果呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-16 16:22:21 | 显示全部楼层
FavouritePython 发表于 2014-1-16 16:18
恩。我的代码加了continue也能正常运行了。这是为什么?for的迭代也是个循环吧?语句都是正常的,怎么不加 ...

可见朋友并没有去理解思路而是跑去理解代码了,这样你觉得可能已经懂了,但事实上核心的东西没有掌握,级别上不去,所以让你写注释不是要为难你啊,耐心分析思路,不要去直接“背”代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-16 16:40:39 | 显示全部楼层
小甲鱼 发表于 2014-1-16 16:22
可见朋友并没有去理解思路而是跑去理解代码了,这样你觉得可能已经懂了,但事实上核心的东西没有掌握,级 ...

怪不得我总觉得我学了那么久没什么进步。。。进度缓慢的不行啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-7 04:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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