在 while 循环中替换单词中从指定位置到结尾的字符

Replacing characters in a word from the specified position to the end in a while loop

我需要像这样打印输出:
'java'
的“jav-” 'python'
的“pyt---” 'kotlin'
的“kot---” 'javascript'

的“jav------”

对于 'python' 和 'kotlin' 它按预期打印,但是对于 'java' 或 'javascript' 它打印“j-v-”和“j-v------ ".

word = ['python', 'java', 'kotlin', 'javascript']
import random
x = random.choice(word)
print("old value of X >", x)
lamai = len(x)
change = 3
symbol = "-"
while lamai > change:
    y = x.replace(x[change], symbol)
    x = y
    change = change + 1
    print("this is y", y)

在您的原始代码中 str.replace 将提供的字符替换为 -。您收到 j-v-,因为您将 a 替换为 -。在 x.replace(x[change], symbol) 中, x[change] 部分仅告诉您角色(在本例中为 a)所在的位置。然后 replace 将每次出现的 a 替换为 -.

修改您的代码:

word = ['python', 'java', 'kotlin', 'javascript']
import random
x = random.choice(word)
print("old value of X >", x)
lamai = len(x)
change = 3
symbol = "-"
while lamai > change:
    y = x[:change] + symbol + x[change+1:]
    x = y
    change = change + 1
    print("this is y", y)