鱼C论坛

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

python20讲课后作业动手2

[复制链接]
发表于 2020-2-3 16:52:39 | 显示全部楼层 |阅读模式

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

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

x
  1. str1 = ''' ABSaDKSbRIHcRHGcdDIF '''
  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():        #问题1:continue循环三次,找到了三个大写字母ABS,因此countA == 3对吗?[/b][/i]
  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              #问题2:这个continue有何意义,小写字母a已经被找出来了,且a的前面有三个大写字母

  21.     if str1[i].islower() and countC == 3:   #问题3:如果a是被找出来的小写字母,按第一轮看countC根本没有加啊,这样不就判断不了小写a了,又得重新for循环了,我有点懵?
  22.         print(str1[target],end = '')

  23.     countA = 0
  24.     countB = 0
  25.     countC = 0
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-3 17:25:00 | 显示全部楼层
有题目吗?你这个程序要实现什么功能?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-3 17:30:00 | 显示全部楼层
回答1.continue循环三次后,countA == 3,正确
回答2.这个continue很关键的,如果没有的话,会继续运行下去,将countA,countB,countC的值都变成了0,这样的话,之前的努力都白费了
回答3.countc的值在代码的第十二行处进行了累加.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-9 13:58:32 | 显示全部楼层
一个账号 发表于 2020-2-3 17:25
有题目吗?你这个程序要实现什么功能?

打印出小写字母,小写字母左边有三个大写字母,右边也有三个大写字母
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-9 14:03:15 | 显示全部楼层
小喵学计算机 发表于 2020-2-3 17:30
回答1.continue循环三次后,countA == 3,正确
回答2.这个continue很关键的,如果没有的话,会继续运行下去,将 ...

关于回答3你说在第12行处累加了,我回去看了一下,满足条件countB ==1才会执行count+1呀。可是刚开始运行程序的时候countB一直是 0 呀,在第19行才会变成1。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-9 14:04:01 | 显示全部楼层
小喵学计算机 发表于 2020-2-3 17:30
回答1.continue循环三次后,countA == 3,正确
回答2.这个continue很关键的,如果没有的话,会继续运行下去,将 ...

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

使用道具 举报

发表于 2020-4-7 17:50:50 | 显示全部楼层
这是哪里的答案?和小甲鱼的不一样啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-8 15:24:24 | 显示全部楼层
1)
  1.   if str1[i].isupper():        #问题1:continue循环三次,找到了三个大写字母ABS,因此countA == 3对吗?[/b][/i]  对
  2.         if countB == 1:
  3.             countC += 1
  4.             countA = 0
  5.         else:
  6.             countA += 1
  7. 这个先循环三次,然后进入
  8. 2)[code]if str1[i].islower() and countA == 3:
  9.         countB = 1
  10.         countA = 0
  11.         target = i
  12.         continue              
复制代码

        continue意义:没有的话不会循环这个,会直接循环下一个语句,这时候获得 countB = 1, 这时候countC=0, 不满足下一个条件if str1.islower() and countC == 3: ,返回上面开始1)
  然后 1)代码又执行3次,到了DKS,因为countB == 1所以满足条件, countC 也每次+1 到了countC == 3了, countA=0,这时候就到了
3)
  1. if str1[i].islower() and countC == 3:   
  2.         print(str1[target],end = '')
复制代码
这里,就打出来了,然后再执行后面初始化的语句,重新开始找
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 08:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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