关于这个问题以下是我参考网上的代码
a=input()
l=len(a)
for i in range(l,9,-1):
if "6"*i in a:
a=a.replace("6"*i,"27")
for i in range(9,3,-1):
if "6"*i in a:
a=a.replace("6"*i,"9")
print(a)
如果我将for循环更改为如下代码
a=input()
l=len(a)
for i in range(10,l+1):
if "6"*i in a:
a=a.replace("6"*i,"27")
for i in range(4,10):
if "6"*i in a:
a=a.replace("6"*i,"9")
print(a)
此时代码则无法通过测试
但是我写出的for循环与网上写出的for循环差别只有一个升序排列一个降序排列
原理应该都一样吧
为什么我写出的升序for循环无法通过全部测试?😕
循环边界不对,第一个for循环的循环次数变少了,只循环了10到字符串长度之间的次数,而原始代码是循环了字符串长度到9之间的次数。
第二个for循环的循环次数也发生了变化,只循环了4到9之间的次数,而原始代码是循环了9到3之间的次数
for i in range(10,l+1):
应该是
for i in range(l, 2, -1):
原因很简单啊
I say 66666666666
这里有11个6,倒序就会变成1个27
正序从·10个开始,那就会变成 27 余1个6,成为 276
所以。。。。你懂了?
不知道你这个问题是否已经解决, 如果还没有解决的话:for c in s:
<语句块>
s是字符串,遍历字符串每个字符,产生循环。
c代表字符串中的每个字符,它能够从字符串中按顺序取出每一个字符放到c中,而针对每一次取出的字符,执行一次语句块,进而产生循环。
代码示例如下:
for c in "Python123": print(c,end=",")
运行界面如下: