Skip to main content
 首页 » 编程设计

python之给定面积和周长计算矩形的宽度

2025年05月04日13dflying

我将代码的 e1 和 e2 部分作为询问 calculate width of a rectangle given perimeter and area 时找到的 google 方程式的两半。

这部分代码被设置为一个更大的部分的一部分,它以可视形式而不是使用整数显示计算的矩形,但是当我测试它时,它给出的答案是不正确的。

import math 
 
print("Welcome to Rectangles! Please dont use decimals!") 
 
area = int(input("What is the area? ")) 
 
perim = int(input("What is the perimeter? ")) 
 
e1 = int((perim / 4)  + .25) 
e2 = int(perim**2 - (16 * area)) 
e3 = int(math.sqrt(e2)) 
 
width = int(e1 * e3) 
print(width) 

请您参考如下方法:

建议您更好地命名变量,以便我们知道您要计算的内容。

从谷歌公式,你应该直接翻译它。

import math  
 
def get_width(P, A): 
  _sqrt = math.sqrt(P**2 - 16*A) 
  width_plus = 0.25*(P + _sqrt) 
  width_minus = 0.25*(P - _sqrt) 
  return width_minus, width_plus 
 
print(get_width(16, 12)) # (2.0, 6.0) 
print(get_width(100, 40)) # (0.8132267551043526, 49.18677324489565) 

你得到零,因为 int(0.8132267551043526) == 0

重要提示:你的计算不成立

area <= (perim**2)/16