应该是简单的Python-Hom

2021-05-16 07:21:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个CompSci问题(可选),别担心,你没有做我的家庭作业:)我有一个相当不可能的时间来理解这个问题,因为这是我要做的全部。它涉及到对python相当基本的理解。在

我必须创建一个满足这个要求的函数。我不知道为什么问题中有6,也不知道它意味着什么。在

“返回一对整数'root'和'pwr's.t.0<;pwr<;6和root**pwr=用户输入。 如果没有整数对满足这些条件,函数将通知用户。“

就像我说的,这是可以选择的,所以我希望得到一个解释,而不是仅仅得到答案。谢谢你们!在

3条回答
网友
1楼 ·

你要找的是一个值,给定一个特定的根,一个0到6之间的幂,这相当于一个用户的输入。一个例子是输入为4==2**2,因此您可能会输出(2, 2)。在

root上似乎没有任何边界。在

网友
2楼 ·

要开始:

0 < pwr < 6

…相当于:

^{pr2}$

这种0 < pwr < 6符号在数学和一些编程语言(包括Python)中非常常见。有关详细信息,请参见维基百科上的Chained notation。在

因此,对于每一个这样的幂,尝试找到一个root,这样root**pwr就是用户的输入值。在

使用^{}有一个快速的方法来实现这一点,但是如果您不知道对数是什么,就不用担心了。相反,您可以尝试所有可能的root。如果任何root太大,那么所有较大的root也将太大。在

除了一个问题:如果user_input是负数呢?所以,你需要找到一种方法来计算所有的正数和负数,直到你找到一个绝对值太大的数值。在

所以,用伪代码写一个简图:

def find_root_pwr(user_input):
    for every pwr such that 0 < pwr < 6:
        for every possible root:
            test_value = root**pwr
            if it's a match:
                return root, pwr
            elif abs(test_value) is too big:
                break # don't need to check larger roots
    else:
        # We tried all 5 powers, and no match
        raise ValueError('No answer for {}'.format(user_input))

为了测试它:

user_input = int(input()) # raw_input if you're on Python 2.x
root, pwr = find_root_pwr(user_input)
print('{} ** {} = {}'.format(root, pwr, user_input))

有关如何编写循环的提示,请参见^{}^{}。你应该能够从这里填写细节,或者至少可以有一个更具体的后续问题。在

网友
3楼 ·

我是这样读的:

  1. 创建一个接受数字作为参数的函数(我假设是一个整数,但不清楚)

  2. 求这个数的第n个根,其中n是1、2、3、4或5中的一个。返回n和根。

  3. 如果找不到合适的根,则显示一个错误。

相关问题