【问题标题】:For Loop not returning the right sum and minor problem with my codeFor Loop 没有返回正确的总和和我的代码的小问题
【发布时间】:2018-09-28 02:07:09
【问题描述】:
while True:
n = int(input('Enter a positive number under 10000(0 to quit):'))

if n >= 10000:       print('Number entered is too high, it must be under 10000.') 

elif n == 0:
    print('Closing programm.')
    break

else:
    width_rectangle = 1/n      



    for rectangle in range(n):
        x_left = rectangle * width_rectangle
        x_right = (rectangle * width_rectangle) + width_rectangle   

        y_left = x_left**3 + 1
        y_right = x_right**3 + 1    



        ###My problem is in the following code:

        height = y_left + y_right / 2
        area = height * width_rectangle**`

此代码完美运行,除了 y_right 和 y_left 之后的部分。我想找到 n 和 n = 我的矩形数量的总面积。所以我的问题是: 我如何只打印整个区域的总和,而不是打印 for 循环通常打印的所有内容?另外,我知道我的代码有效,但我的身高和区号有问题,因为它没有给出正确的答案,当我在纸上做时,它有效。

我遇到问题的方程: - 高度 = y_left + y_right / 2 和面积 = 高度 * 宽度_矩形

到目前为止我已经尝试过: - 为循环添加第二个,没有给我正确的总和 - 我试图把我的打印放在循环之外,因为我看到它会给我 仅循环的最后一次迭代,它不起作用,因为我的变量超出范围

如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: python function for-loop sum equation


    【解决方案1】:

    首先,操作顺序。线

    height = y_left + y_right / 2
    

    应该是

    height = (y_left + y_right) / 2
    

    如果您要查找y_lefty_right 的平均值。毕竟,除法先于加法。

    在此之后,您正在计算面积,但您没有对它做任何事情。您需要在循环开始之前,在循环之外声明一个变量,并在每次迭代时使用它来存储区域。

    基本上,这意味着在 for 循环之前,添加一行

    area_sum = 0
    

    然后在 for 循环的最后添加一行,就在你计算面积的那一行之后:

    area_sum += area   # add the area for this rectangle to the sum of areas of all rectangles
    

    之后,您可以打印area_sum,它应该是您想要的。之前,您收到超出范围的错误,因为您声明的变量被锁定在创建它的“范围”内 - 在 for 循环内。通过在 for_loop 外部声明这个变量,而不是在它内部,您应该也可以在 for 循环外部打印它。

    【讨论】:

    • 非常感谢绿色,这很清楚,我确切地知道我的问题是什么,感谢您的帮助!
    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多