如何在循环期间保留新的字符串值,不断更改字符串直到循环结束?
How do I retain a new strings value during a loop, continuously changing the string until the loop ends?
我想获取字符串的值并循环,要求用户在每次循环迭代期间选择单个字符替换。我想保留用户对字符串所做的更改,然后进行额外的替换,该替换也会保留到用户选择结束循环为止。
newtext = ''
ciphertext = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
answer = 'y'
for letter in ciphertext:
while answer is 'y':
print(ciphertext)
cl = input('Which letter would you like to replace? ')
rl = input('What is the new letter? ')
newtext += ciphertext.replace(cl,rl)
print(newtext)
answer = input('Would you like to continue? (y/n) ')
我认为你应该这样做:
original = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
ciphertext = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
newtext = ''
answer = 'y'
while answer is 'y':
print(ciphertext)
cl = raw_input('Which letter would you like to replace? ')
rl = raw_input('What is the new letter? ')
newtext = ciphertext.replace(cl,rl)
print(newtext)
answer = raw_input('Would you like to continue? (y/n) ')
if(answer == "y"):
ciphertext = newtext
else:
ciphertext = original
我稍微更改了您的代码。如果您需要任何说明,请告诉我
更新
original = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
plaintext = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
answer = 'y'
replacements = {}
while answer is not 'q':
print(plaintext)
cl = input('Which letter would you like to replace? ')
rl = input('What is the new letter? ')
x = [i for i, ltr in enumerate(original) if ltr == cl]
replacements[cl] = x
plaintext = list(plaintext)
for i in replacements[cl]:
plaintext[i] = rl
plaintext = "".join(plaintext)
print plaintext
answer = input('Would you like to continue? (y/n) ')
if(answer == "n"):
plaintext = original
这个应该不错!让我知道。
我知道 raw_input
问题,我改为输入更快 "debugging"。
不好意思之前没理解正确问题:P
我想获取字符串的值并循环,要求用户在每次循环迭代期间选择单个字符替换。我想保留用户对字符串所做的更改,然后进行额外的替换,该替换也会保留到用户选择结束循环为止。
newtext = ''
ciphertext = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
answer = 'y'
for letter in ciphertext:
while answer is 'y':
print(ciphertext)
cl = input('Which letter would you like to replace? ')
rl = input('What is the new letter? ')
newtext += ciphertext.replace(cl,rl)
print(newtext)
answer = input('Would you like to continue? (y/n) ')
我认为你应该这样做:
original = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
ciphertext = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
newtext = ''
answer = 'y'
while answer is 'y':
print(ciphertext)
cl = raw_input('Which letter would you like to replace? ')
rl = raw_input('What is the new letter? ')
newtext = ciphertext.replace(cl,rl)
print(newtext)
answer = raw_input('Would you like to continue? (y/n) ')
if(answer == "y"):
ciphertext = newtext
else:
ciphertext = original
我稍微更改了您的代码。如果您需要任何说明,请告诉我
更新
original = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
plaintext = 'qsv el arm aepm sh tzz ussx pmb as dspm as arm tex sh armel dsvbaci.'
answer = 'y'
replacements = {}
while answer is not 'q':
print(plaintext)
cl = input('Which letter would you like to replace? ')
rl = input('What is the new letter? ')
x = [i for i, ltr in enumerate(original) if ltr == cl]
replacements[cl] = x
plaintext = list(plaintext)
for i in replacements[cl]:
plaintext[i] = rl
plaintext = "".join(plaintext)
print plaintext
answer = input('Would you like to continue? (y/n) ')
if(answer == "n"):
plaintext = original
这个应该不错!让我知道。
我知道 raw_input
问题,我改为输入更快 "debugging"。
不好意思之前没理解正确问题:P