2014-02-07 218 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往往是孤立的問題,你已經發現在代碼中;而不是完整的代碼審查。一個更可接受的問題將沿着「我的功能正在返回一個意想不到的價值」的行,而不是「我的功能不工作」