0

我需要得到“计算机”这个词。将每个字母转换为其对应的 ASCII 值(使用 For 循环)。然后将各个 ASCII 值相加得到总和。

我在启动程序时输入“COMPUTER”作为“文本”的参数。

所以认为计算机 = 文本

到目前为止我所拥有的:

def addASCIIValues(text):
  for char in text:
    AsciiArray = ord(char)
    print AsciiArray

  1. 文本输入为“计算机”
  2. 对于“计算机”中的每个字符
  3. 将每个字符转换为其 ASCII 值
  4. 将值相加
  5. 收到总和
  6. 打印总和

请使用没有导入功能的简单代码。

我正在使用 Jython,但 python 响应也可以!

4

2 回答 2

0

由于 ord 函数返回一个 int,你可以只求和,所以像这样

sum = 0
for letter in word:
    sum += ord(letter)

print(sum)
于 2015-04-05T07:01:15.437 回答
0

您的部分困惑可能是因为您将int返回的名称命名为ord() AsciiArray. 它不是一个“数组”。

使用列表推导很简单:

word = 'COMPUTER'
print sum([ord(c) for c in word])

但是,您要求具体步骤:

word = 'COMPUTER'
SUM = 0
for char in word:
    value = ord(char)
    SUM += value

print SUM

我应该指出,通常大写名称用于常量,因此名称 SUM 通常不会被认为是好的做法。

于 2015-04-05T08:16:33.633 回答