|
发表于 2018-1-23 14:53:01
|
显示全部楼层
本帖最后由 graceasyi 于 2018-1-23 14:54 编辑
我是一个初学者,还没有学这一课,看了下你的代码,是有问题的,缺少了countB的统计。str1 == '\n'的意思应该是不统计字符串中的回车。
遍历每一个字符,如果是回车不统计,进入下一个字符,如果是大写字母,判断这个大写字母前面有没有过小写字母(countB不为0说明已经统计过小写字母了,反之亦然),如果有,则countC+=1,也就是统计小写字母之后的大写字母数;如果没有,则countA+=1,统计小写字母前的大写字母数
- str1 = "ABSaDKSbRIHcRHGcdDIF"
- countA = 0 # 统计前边的大写字母
- countB = 0 # 统计小写字母
- countC = 0 # 统计后边的大写字母
- length = len(str1)
- for i in range(length):
- if str1[i] == '\n':
- continue
- if str1[i].isupper():
- if countB:
- countC += 1
- else:
- countC = 0
- countA += 1
- else:
- countB += 1
复制代码
这样我觉得有些麻烦,直接遍历字符,不用索引更简单
- str1 = "ABSaDKSbRIHcRHGcdDIF"
- countA = 0 # 统计前边的大写字母
- countB = 0 # 统计小写字母
- countC = 0 # 统计后边的大写字母
- for i in str1:
- if i == ' ': # 不统计字符串中的空格
- continue
- elif i.isupper():
- if countB:
- countC += 1
- else:
- countA += 1
- else:
- countB += 1
复制代码 |
|