python 第二十讲中 动动手1中的问题
这是小甲鱼的代码:|如果前边和后边都是三个大写字母:
|-- 如果后边第四个字母也是大写字母(不符合条件):
|-- -- 清空记录B和C,重新统计
|-- 如果后边仅有三个大写字母(符合所有条件):
|-- -- 打印结果,并清空所有记录,进入下一轮统计
"""
if countA == 3 and countC == 3:
if i+1 != length and str1.isupper():
countB = 0
countC = 0
else:
print(str1, end='')
countA = 3
countB = 0
countC = 0
if i+1 != length and str1.isupper(): 这段代码小甲鱼翻译的是‘如果后边第四个字母也是大写字母(不符合条件)’,我理解不了如果这样翻译为什么代码这么写,我对这句代码理解翻译的是“如果i+1不等于lenth并且不等于str是个大写字母”
求大神帮我理一下思路 if i+1!=length就是说下一个字符的索引不等于长度,就是遍历字符串还没到头的意思,后面还有
i+1就是下一个字符的索引,所以str1就是下一个字符
根据str1.isupper的返回值就能判断下一个字符是大写还是小写
if i+1 < length and str1.isupper():
这样写似乎更加合理, 其逻辑为,在索引 str1 之前,必须保证 i + 1 没有下标越界,这就是 i + 1 < length 的意义,在这个前提下,再判断 str1 是不是一个大写字母。 昨非 发表于 2021-1-14 11:37
if i+1!=length就是说下一个字符的索引不等于长度,就是遍历字符串还没到头的意思,后面还有
i+1就是下 ...
这段代码的意思如果第四个字母也是大写字母,代码不应该是 == str.isupper(),小甲鱼为什么写成 !=str.isupper() jackz007 发表于 2021-1-14 11:49
这样写似乎更加合理, 其逻辑为,在索引 str1 之前,必须保证 i + 1 没有下标越界,这就是 i +...
谢谢 我明白了 昨非 发表于 2021-1-14 11:37
if i+1!=length就是说下一个字符的索引不等于长度,就是遍历字符串还没到头的意思,后面还有
i+1就是下 ...
谢谢我想明白了
页:
[1]