【问题标题】:How do I return my result from this For loop in Python如何从 Python 中的这个 For 循环返回我的结果
【发布时间】:2021-11-23 03:49:59
【问题描述】:

我正在创建一个指数函数,它非常简单,但是当我让用户能够提供输入时,我无法让该函数实际打印我的结果。这是我的函数,可能有问题。

#exponent function
      
bas_num = input("Base Number: ")
pow_num = input("Power: ")

def raise_to_power(bas_num, pow_num):
    result = 1
    for index in range(pow_num):
        result = result * bas_num
    return result

就目前的情况而言,我无法读取我的结果。我似乎无法根据用户输入打印它。如果我使用,我可以让它工作

print(raise_to_power(x, y)) 

但是我给出的是输入,而不是用户。

任何帮助表示赞赏。

编辑

#exponent function

bas_num = int(input("Base Number: "))
pow_num = int(input("Power: "))

def raise_to_power(bas_num, pow_num):
    result = 1
    for index in range(pow_num):
        result = result * bas_num
    return result

print(raise_to_power(bas_num, pow_num))

这行得通。谢谢约翰尼莫普

【问题讨论】:

  • 需要将输入转换为数字:bas_num = int(input("Base Number: "))
  • 什么是xy?您需要将用户输入传递给函数:print(raise_to_power(bas_num, pow_num))
  • @JohnnyMopp,这两个元素修复了它。谢谢你。我没有意识到我只是在打印函数中重新输入了那些完全相同的变量,然后它就可以工作了。 x,y 只是占位符,用于解释我可以通过在代码中定义输入来强制它工作,但无法弄清楚如何从用户输入中使其工作。

标签: python for-loop printing return


【解决方案1】:

这是您的代码的更正版本。输入函数被移到了 def 函数下,因此,当函数被这样调用时:raise_to_power() 将要求用户输入 bas_num & pow_num。

def raise_to_power():
    bas_num = int(input("Base Number: "))
    pow_num = int(input("Power: "))

    result = 1
    for index in range(pow_num):
        result = result * bas_num
    return result

输出如下所示:

如果您发现这可以解决您的问题,请考虑接受答案:)

【讨论】:

  • 一般来说,一个函数应该做一件事(并且做好)。感觉OP当初选择分离用户输入逻辑和计算的比较好。这使得函数更可重用。例如,如果要打印前 10 个整数的平方:for x in range(1, 11): raise_to_power(x, 2)。你不能用你的代码做到这一点。
猜你喜欢
  • 2017-09-30
  • 1970-01-01
  • 2018-11-06
  • 2019-07-31
  • 2018-06-05
  • 1970-01-01
  • 2013-12-15
  • 2011-07-05
  • 1970-01-01
相关资源
最近更新 更多