【问题标题】:Python How to get a integer using the ord function? [closed]Python 如何使用 ord 函数获取整数? [关闭]
【发布时间】:2021-11-27 02:27:59
【问题描述】:

我的代码有问题,主要问题是我想通过使用 getEquivalentNumber 函数返回 1 但问题是当我运行代码时它给我的结果是 -63 有什么方法可以改进代码以获得更好的结果。

print('*' * 50)
user_input = input('Please enter a word. \n'
               '-->')
print('*' * 50)




def getEquivalentNumber(_Mychar):
    _Mychar = _Mychar.lower()
    equivalentNumber = ord(_Mychar) - 96

    return equivalentNumber



def computeSumOfCharacters(myWord):
    sum = 0
    for i in myWord:  # apple
        sum += getEquivalentNumber(i)

    return sum


print(computeSumOfCharacters(user_input))

【问题讨论】:

  • 令人困惑的是什么?您需要提供更多信息;向我们展示一个尝试。例如,您知道函数是什么吗?那么b应该没问题。你需要解释什么是令人困惑的,因为我们不能只为你解决任务。
  • 它的哪一部分令人困惑?你知道如何开始吗?
  • 可以问作业问题,但你需要自己试一试,问你的解决方案,不要让这里的人为你解决它meta.stackoverflow.com/questions/334822/…
  • 是的,我绝对可以向你们展示一个示例,对于我忘记在代码中添加的混乱表示歉意。
  • print('' * 50) user_input = input('请输入一个单词。\n' '-->') print('' * 50) def getEquivalentNumber (_Mychar): _Mychar = _Mychar.lower() equivalentNumber = ord(_Mychar) - 96 return equivalentNumber def computeSumOfCharacters(myWord): sum = 0 for i in myWord: # apple sum += getEquivalentNumber(i) return sum def computeSumOfDigits(myNumber ): list = [int(x) for x in str(sum)] total = 0 for i in range(0, len(list)): total = total + int(list[i]) print('幻数为 \' 总计)

标签: python function sum digits


【解决方案1】:
  1. 您使用def 定义函数。
  2. 您可以通过number % 10获取数字的个位值。
  3. 您可以使用number = number // 10删除个位。
  4. 您可以通过从零开始累加器并添加每个数字来累积这些数字。
  5. 您可以循环直到数字变为零。
  6. 您可以使用 return 从函数返回一个值。

抱歉,如果其中一些内容看起来太基础,但我不确定您的技能水平。这几乎就是我要遵循的过程,没有给你实际的代码。


我唯一关心的是computeSumOfDigits(911) must return a SINGLE digit,但后面的文字是9 + 1 + 1 = 11

如果您需要进一步处理不是单个数字的结果,您可以在返回之前检查并在结果上调用相同的函数,例如(伪代码):

if accumulator > 9:
    return computeSumOfDigits(accumulator)

这将计算:9 + 1 + 1 -> 11, 1 + 1 -> 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    相关资源
    最近更新 更多