无法返回函数的正确结果

时间:2018-10-12 16:59:56

标签: python python-3.x

我只是一个学习代码的初学者,根本没有任何先验知识。

我在下面编写了一个简单的代码,以应用我的定义函数和for循环的知识。据推测,该代码将允许用户根据其输入获得任意数字。但是,正如您将在下面看到的,我总是得到0的结果。

老实说,我不确定我哪里出错了,并且被告知我的代码不是最易读的代码。因此,我想寻求您的帮助,以启发我这是怎么回事以及如何使它变得更好。

非常感谢你们!

scanf("%f",&num1);
scanf("%f",&num2);
scanf("%f",&num3);

num1 = floor(1000*(num1/999))/1000;
num2 = floor(1000*(num2/999))/1000;
num3 = floor(1000*(num3/999))/1000;

printf("%.3f...\n",num1);
printf("%.3f...\n",num2);
printf("%.3f...\n",num3);
  

输入基本号码:4
  输入电源:4
  0
  流程结束,退出代码为0

2 个答案:

答案 0 :(得分:0)

看起来就是您想要的:

yearCount += 1; print(f'Year {yearCount}:')

示例:

def to_power(base, power):
   result = 1
   for i in range(power):
     result = result * base
return int(result)

答案 1 :(得分:0)

你很近。这是您代码的有效版本。

您的代码存在问题

  • range(power)将生成从0power-1的值。您使用base遍历这些值,并且由于使用result = result * base,所以要乘以0,这就是得到0的原因

解决方案:

  • 您只需要迭代循环power次,并不断将base乘以那么多(power)次。由于此处未使用循环索引,因此我在_
  • 中使用了for _ in range(power):

def to_power(base, power): 
    result = 1 
    for _ in range(power): 
        result = result * base 
    return int(result)

print(to_power(int(input("Enter Base Number: ")), int(input("Enter Power: "))))

# Enter Base Number: 4
# Enter Power: 4
# 256