这就是我所拥有的。这是一个我必须采用随机字符串的程序,例如)“]] [] [sfgfbd [pdsbs] \ bdgb”;并删除所有特殊字符。 “ Strip”功能可达到其目的。
NSBundle
在“解码”功能中我需要带材的输出,但是无论如何我都无法弄清楚存储“索引”的迭代次数
message=(str.lower(input("Enter a Coded message: ")))
offset=int(input("Enter Offset: "))
alphabet="abcdefghijklmnopqrstuvwxyz"
def strip(text):
print("Your Lower case string is: ",message)
print("With the specials stripped: ")
for index in text:
if index in alphabet:
print(index, end="")
print()
return strip
因此,“解码”仅采用原始“消息”输入的输出。但是,“ Palin”成功获取了解码的值。
def decode(character):
encrypted= ""
for character in message:
global offset
if character == " ":
encrypted+= " "
elif ord(character) + offset > ord("z"):
encrypted+=chr(ord(character) +offset - 26)
else:
encrypted+= chr(ord(character)+(offset))
print("the decoded string is: ",encrypted,end=" ")
print()
答案 0 :(得分:1)
请不要混淆print
和return
。
您需要仔细查看方法的输出(它们返回的内容,而不是它们打印到控制台的内容):
strip()
和palin()
方法正在返回对自身的引用,而不是与其输入有关的任何有用信息。decode()
方法未返回任何内容。要解决此问题,您可以在方法内部使用一个变量,该变量是使用所需逻辑基于输入变量构建的。例如:
def strip(text):
print("Your Lower case string is: ",text)
print("With the specials stripped: ")
stripped_text = "" # <-- create and initialise a return variable
for index in text:
if index in alphabet:
stripped_text += index # <-- update your return variable
print(index, end="")
print()
return stripped_text # <-- return the updated variable
然后,您需要为decode()
做类似的事情,尽管这里您已经有一个输出变量(encrypted
),所以您只需要在方法结束时return
就可以了。
palin()
方法不需要返回任何内容:它只会打印出结果。
一旦完成这项工作,就应该考虑如何使用Python语言的其他功能来更轻松地实现目标。
例如,您可以使用replace()
来简化strip()
方法:
def strip(text):
return text.replace('[^a-z ]','') # <-- that's all you need :)