2014-02-07 93 views
0

研究CS测试,基本上我必须遵循与此类似的说明。计算一个圆的周长,面积和周长与面积的比例

编写一个程序,它是一个包含主函数的文件,然后调用主函数 ,并命名程序ratio.py。该方案的基本结构 应该是这样的:

def main(): 
    ... 
    return 

main() where the ellipsis indicates where you should place the code that performs following computations: 

-you应提示对应于圆的半径 的整数值的用户。具有类似于代码做到这一点:(“?圆半径”输入()) 半径= INT

  • 使用公式C = 2πR其中r是半径,c是圆周计算圆的圆周。使用的 3.14159的值使用公式C =πR2
  • 打印的圆周到面积的比率(a与b的比率是一个除以b)
  • π
  • 计算圆的面积

这是我迄今写的。我得到了周长和面积,但我怎样才能得出它们之间的比率并打印比例。

def main(): 
    radius = int(input("circle radius? ")) 
    pi = 3.14159 
    r = radius 
    c = 2*pi*r 
    print(2*pi*r) 
    a = pi*r*r 
    print(pi*r*r) 
    ratio = c/a 
    return(ratio) 
    print("the ratio of the circumference to the area is",ratio) 
main()   

的最终目标是让这样的事情:

  • $ python3 ratio.py

  • 圆半径? 2

  • 周长与面积的比率是?
  • 其中????被实际比率取代。
+0

我们又回来了吗?尽量避免关闭这么多问题;这个已经好多了,但似乎错过了一条错误消息。出了什么问题,你预期会发生什么? –

+0

您应该编辑**您现有的问题以改进它们,而不是发布新问题。反复询问实质上相同的问题是获得自动化问题禁令的好方法。 – geoffspear

+0

我试着用函数的结果编辑它,希望它有帮助 – user3283574

回答

1

你非常接近解决这个问题。这里有几个想法,以帮助你完成它:

  1. import陈述通常应该在文件的顶部,而不是在函数内部。他们将在功能上工作,但形式不佳。这可能不是在课堂上教授的,但是当你阅读其他人的代码时,你习惯了看到特定的模式。

  2. 作为一种风格,Python通常使用大写字母作为常量名,因此PI=3.14159比pi = 3.14159更常见。这是微不足道的,并且以任何方式工作坚持这是一种很好的风格,因为它有助于使您的代码与其他代码相匹配。

  3. 您需要使用给出的公式计算面积:a = PI * r * r(注 - 原始问题错误地使用'c'表示该区域,'c'表示周长。)

  4. 您需要返回c/a,这是请求的比率。

  5. 您可能需要打印出测试的返回值。您可以通过将main()返回的值存储在一个变量中然后将其打印出来。

这里是如何从main()函数返回一个值:

def main(): 
    ... 
    return c/a 

ratio = main() 
print(ratio) 
# or... 
print("The ratio is:", ratio) 
+2

他实际上需要定义'pi'。这是要求。 – Fenikso

+0

你能解释一下如何完成最后一步吗?也非常感谢您的帮助。 – user3283574

+0

@ user3283574'result = main()'然后'print(result)'。 – 2rs2ts

0

这是奇怪的是,你做c = (2*math.pi*r)当你有声明为上述两行的变量PI。做math.pi去python的数学库和挖掘一个更准确的pi版本。对于所有的意图和目的,你只是完全没有使用这个pi变量。 有关更多信息,请参阅http://docs.python.org/2/library/math.html

此外,你做两次相同的计算。

c = 2*math.pi*r 
return(2*math.pi*r) 

Ç刚刚结束收集被垃圾(这是说,计算机完成运算然后将其扔到垃圾箱不言而喻)和从未被使用。这将是更好的简单return c

为范围问题,我敢肯定你不会知道作为一个初学者,import mathimport math高于你的主要功能,没有缩进。

只是为了将来参考,虽然SO往往是孤立的问题,你已经发现在代码中;而不是完整的代码审查。一个更可接受的问题将沿着“我的功能正在返回一个意想不到的价值”的行,而不是“我的功能不工作”