python最新版 27讲 字符串1
动动手1:我能正常打印结果,可为什么我改了好几种方式,第8行都会报错
用for循环来实现,去单步调试的时候第一次运行到这个地方也会报错,在往下能正常运行
这是为什么
str = "AABaAbCc"
str1 = str.swapcase()#将目标字符串整个翻转过来
length = len(str)
j = 0
while j <= length - 2:
#将目标字符串与它大小写对调后的字符串进行对比,相同则删除
if str == str1 and j >= 0:
str = str[:j] + str
str1 = str.swapcase()
j -= 2
j += 1
print(str)
应该是索引值超出列表的最大范围了吧...... python爱好者. 发表于 2022-3-29 14:52
应该是索引值超出列表的最大范围了吧......
while给定的条件j <= length - 2 限定了j最大到倒数第二个元素,在加上1正好和最后一个对比完就结束,第一次循环也是从零开始,所以我想不明白为什么报错 1815702237 发表于 2022-3-29 15:01
while给定的条件j
str长度是变化的
str = "FishCcCode"
str1 = str.swapcase()# 将目标字符串整个翻转过来 对调
j = 0
while j <= len(str) - 2:
# print(length, j)
# 将目标字符串与它大小写对调后的字符串进行对比,相同则删除
if str == str1 and j >= 0:
str = str[:j] + str
str1 = str.swapcase()
j -= 2
j += 1
print(str, str1, j)# 这样调试也可以
页:
[1]