string = input()
for i in range(len(string)):
if i % 3 == 0:
final = string.replace(string[i], "")
print(final)
有人问我一个问题:“给出一个字符串,删除其索引可被3整除的所有字符。”
输入
Python
的答案是yton
。但是,我的代码给出了Pyton
。代码对我来说很有意义,但是我是一个初学者。有帮助吗?
答案 0 :(得分:0)
在当前代码中,循环的每次迭代都使用final
。它通过替换一个字符来继续更新。在每次迭代中,final
被替换为一个不同的字符串,并删除了string
中的一个字母。循环完成后,实际上仅替换了一个字母,在这种情况下为“ h”。
改用它(感谢Mateen Ulhaq的想法):
print("".join(x for i, x in enumerate(input()) if i % 3 != 0))
答案 1 :(得分:0)
string=input()
final=""
for i in range(len(string)):
if i % 3 != 0:
final+=string[i]
print(final)
在您的代码中,行final = string.replace(string[i], "")
将像这样运行。
假设输入为“ hellobaby”:
i=0, final="ellobaby"
i=3, final="helobaby"
i=6, final="hellobby"
答案 2 :(得分:0)
问题在于,在循环时,每次将索引除以3时,您就会覆盖final
变量。
相反,尝试在开始循环之前定义最终变量,并在循环遍历字母时添加字母,并且仅在字母的索引不能被3整除的情况下(因此,忽略索引被3可以整除的字母)。 / p>
类似的事情应该起作用:
string = input()
final = ""
for i in range(len(string)):
if i % 3 != 0:
final += string[i]
print(final)