【发布时间】:2018-01-24 17:03:02
【问题描述】:
以下代码是我的一项练习通过主题,
这是我的代码:
rot13=raw_input("Please write your text! ")
这是我向用户询问文本的地方
for i in range(len(rot13)):
在这一部分中,我用 for 逐个字母地检查文本。
if rot13[i]=="a":
rot13[i]="n"
elif rot13[i]=="b":
rot13[i]="o"
elif rot13[i]=="c":
rot13[i]="p"
elif rot13[i]=="d":
rot13[i]="q"
elif rot13[i]=="e":
rot13[i]="r"
elif rot13[i]=="f":
rot13[i]="s"
elif rot13[i]=="g":
rot13[i]="t"
elif rot13[i]=="h":
rot13[i]="u"
elif rot13[i]=="i":
rot13[i]="v"
elif rot13[i]=="j":
rot13[i]="w"
elif rot13[i]=="k":
rot13[i]="x"
elif rot13[i]=="l":
rot13[i]="y"
elif rot13[i]=="m":
rot13[i]="z"
elif rot13[i]=="n":
rot13[i]="a"
elif rot13[i]=="o":
rot13[i]="b"
elif rot13[i]=="p":
rot13[i]="c"
elif rot13[i]=="q":
rot13[i]="d"
elif rot13[i]=="r":
rot13[i]="e"
elif rot13[i]=="s":
rot13[i]="f"
elif rot13[i]=="t":
rot13[i]="g"
elif rot13[i]=="u":
rot13[i]="h"
elif rot13[i]=="v":
rot13[i]="i"
elif rot13[i]=="w":
rot13[i]="j"
elif rot13[i]=="x":
rot13[i]="k"
elif rot13[i]=="y":
rot13[i]="l"
elif rot13[i]=="z":
rot13[i]="m"
print rot13
有谁知道为什么这不起作用?我不想用编码来做。
【问题讨论】:
-
欢迎来到 *!你想达到什么目标?预期和观察到的输出分别是什么?请通读*.com/help/how-to-ask 并相应地编辑您的问题。
-
马上,我看到您正试图通过执行
rot13[i] = "..."将一个字符换成另一个字符。你不能在 Python 中做到这一点。考虑首先使用list(rot13)将字符串转换为数组。但首先,您要实现什么目标? -
我试图向用户询问文本,我会用 rot13 字符打印它。实际上,当我使用 list(rot13) 使 rot13 成为列表时,我确实做到了,在此之后我做到了: keimeno="", for i in range (len(rot13)):, keimeno=keimeno +rot13[i], print keimeno 。所以它会像文本而不是列表一样打印它。
-
为什么不迭代字母并构建一个新的字符串变量?另外,尝试使用从键(字母)到它的值(它的 log1,因为你知道字典大小)的映射。您可以将字符串迭代为字符列表,
for char in rot13: -
我不会为您编写此代码,这是您的任务,请尝试编写尽可能简单的代码以达到最佳性能。从键到值的映射和构建网络字符串可以在 log(n) 中实现,在一行中,两行使这更易读,三行不使用字典构造函数。
标签: python-2.7 if-statement rot13