【发布时间】:2011-03-31 03:40:00
【问题描述】:
我是 python 2.7 的新手,试图创建一个简单的程序,该程序从用户那里获取输入字符串,将所有字符转换为其 ascii 值,将所有 ascii 值加 2,然后将新值转换为文本。例如,如果用户输入是“test”,那么输出应该是“vguv”。
这是我目前写的代码:
message = input("enter message to encode")
for ch in message:
message2 = ord(ch) + 2
print "\n\n"
encodedmessage = ""
for item in message2.split():
encodedmessage += chr(int(item))
print ("encoded msg in text : "), encodedmessage
它似乎没有正常工作,任何帮助将不胜感激。谢谢。
【问题讨论】:
-
总是花一点时间来消化解释器向你抛出的错误。此代码将返回
AttributeError: 'int' object has no attribute 'split',并向您显示无效的行。它直接说message2是'int' object,您可能没有想到。如果您无法弄清楚(某些错误可能相当模糊),请发布错误,而不是仅仅说“它不起作用”。 -
顺便说一句:Nick T 的建议非常中肯:从解释器那里取出错误,看看它是什么意思。它还应该给你一个行号和一些上下文,所以你知道在哪里看。确保每个变量都持有您认为的持有量。