我正在尝试在 python 中制作一个移位的字母编码器,但由于某种原因它只经历了一次 for
循环,我该如何解决这个问题?
import string
uppercase = list(string.ascii_uppercase)
a = input("Your word: ")
def encode(str):
for i in str:
currentletterindex = uppercase.index(i)
shifted = uppercase[currentletterindex+1]
return shifted
print(encode(a))
答案 0 :(得分:0)
nvm,我尝试在没有功能的情况下运行它,并且运行良好
import string
uppercase = list(string.ascii_uppercase)
a = input("Your word: ")
for i in a:
if i in uppercase:
current_index = uppercase.index(i)
shifted = uppercase[current_index+1]
print(shifted, end='')
答案 1 :(得分:0)
问题是由函数中的return
语句引起的。 return 语句停止函数并使其返回值。只有在完成该函数中需要执行的任何操作后,才应调用 return。您可以通过将输出添加到字符串来解决此问题。
代码:
import string
uppercase = list(string.ascii_uppercase)
a = input("Your word: ")
def encode(input_str):
output_str = ""
for letter in input_str:
currentletterindex = uppercase.index(letter)
shifted = uppercase[currentletterindex+1]
output_str += shifted
return output_str
print(encode(a))