hhhhhhhhhhhhelp
【求助帖】请及时确认最佳答案,下次提问时可以得到更多关注,问题可以更快解决
def myRev(attribute):
a = len(attribute) - 1
while 1:
try:
yield attribute
a -= 1
except:
return
for i in myRev("FishC"):
print(i, end='')
为什么打印结果是ChsiFChsiF,而不是ChsiF
你这个生成器直到有异常才结束迭代,而在 python 中负数是可以做索引的
所以你的输出过程的索引是
43210-1-2-3-4-5
Chs iF C h s i f
这就是输出两遍的原因,你要输出 ChsiF 的话就限制索引的值,而不是通过异常结束生成器
def myRev(attribute):
a = len(attribute) - 1
while not a < 0:
yield attribute
a -= 1
for i in myRev("FishC"):
print(i, end='')
前面不是答复了,关建在你的while处。 2楼说的对 本帖最后由 学习编程中的Ben 于 2023-8-12 23:58 编辑
因为当a为负数时,他还会继续取值,
举个例子:
a = "FishC"
print(a[-1])
输出:
C
所以,你的代码应该加个判断:
def myRev(attribute):
a = len(attribute) - 1
while a >= 0:
try:
yield attribute
a -= 1
except:
return
for i in myRev("FishC"):
print(i, end='')
输出:
ChsiF
给个最佳答案呗!!!求你了!!!{:10_254:} def myRev(attribute):
a = len(attribute) - 1
while 1:
try:
yield (attribute, a)
a -= 1
except:
return
for i in myRev("FishC"):
print(i)
这不就知道了吗,负数也是有索引的 isdkz 发表于 2023-8-12 23:55
你这个生成器直到有异常才结束迭代,而在 python 中负数是可以做索引的
所以你的输出过程的索引是
一眼人工{:10_275:} sfqxx 发表于 2023-8-13 00:09
一眼人工
为了最佳没办法{:10_266:},个个都好晚呀,要是最佳被Ben抢走了我得{:10_247:} isdkz 发表于 2023-8-13 00:14
为了最佳没办法,个个都好晚呀,要是最佳被Ben抢走了我得
没办法,这样下去论坛估计会遭殃……
页:
[1]