2017-05-04 64 views
-2

你們中的一些人可能已經看到我正在爲大學制作繪畫程序。我遇到了一個問題,經過少量分析後,我和導師目前都在努力尋求解決方案。我有所有的用戶輸入要求,我現在試圖做簡單的數學。我需要變量告訴我整個牆面面積,整個窗戶面積和整個窗戶面積,然後從牆面區域拿走窗戶和門區域,然後將需要的部分留給我。問題是我的許多值是在數組中,這似乎會導致問題。我的導師和我已經搞砸了很多代碼,所以我不確定它現在處於什麼狀態,但是肯定會提出小錯誤和大錯誤,儘管它們可能不是主要問題。Python - 數學/在數組中添加項目

def Maths(): 

    TotalWallArea =() 
    TotalWindowArea =() 

    for i in range (0,Walls): 
    TotalWallArea += (WallLengthArr[i] * height) 

    for i in range (0,Windows): 
    TotalWindowArea += (WindowLengthArr[i] * WindowHeightArr[i]) 

    TotalDoorArea = DoorHeight * DoorWidth 

    NoPaintArea = TotalDoorArea + TotalWindowArea 
    OverallPaintArea = TotalWallArea - NoPaintArea 
    print("Total Wall Area:", TotalWallArea) 
    print("No Paint Area:", NoPaintArea) 
    print("Overall Paint Area:", OverallPaintArea) 

當前出錯:類型錯誤:只能拼接元組(而不是「浮動」)到元組

+0

您能提供有關*您遇到的任何問題的詳細信息嗎? –

+0

完成@ScottHunter –

+1

爲什麼'TotalWallArea'和'TotalWindowArea'使用空元組進行初始化?我認爲你應該把它們設置爲零。 –

回答

0

您要使用的Maths內部全局變量,但不要使用global命令,指示他們是全球性的。

+0

我需要將它們聲明爲全局的,然後初始化它們嗎? 例如: 全球TotalWallArea 全球TotalWindowArea TotalWallArea = 0.0 TotalWindowArea = 0.0 –

+0

我沒有看到在OP代碼進行任何分配到全局。您不需要'global'指令來讀取全局變量。 –

+0

@ PM2Ring:TotalWallArea和TotalWindowArea最初是在'Maths'之外定義的。 –

1

謝謝大家! 代碼現在似乎工作,並提供正確的數字和答案,不認爲它是有效的,我不知道它是否全部需要,但現在我有。

def Maths():  
    global TotalWallArea 
    global TotalWindowArea 
    TotalWallArea = 0.0 
    TotalWindowArea = 0.0 

    for i in range (0,Walls): 
     TotalWallArea += (WallLengthArr[i] * height) 

    for i in range (0,Windows): 
     TotalWindowArea += (WindowLengthArr[i] * WindowHeightArr[i]) 

    TotalDoorArea = DoorHeight * DoorWidth 
    NoPaintArea = TotalDoorArea + TotalWindowArea 
    OverallPaintArea = TotalWallArea - NoPaintArea 

    print("Total Wall Area:", TotalWallArea) 
    print("No Paint Area:", NoPaintArea) 
    print("Overall Paint Area:", OverallPaintArea) 
+0

我不確定是否需要頂部的所有變量聲明? :/ –

+0

除非您想在'Maths'函數之外提供'TotalWallArea'和'TotalWindowArea'名稱,以便進一步計算,否則不需要這兩個'global'語句。如果你只是在'Maths'裏面打印'TotalWallArea'和'TotalWindowArea',你就不需要'global'語句。 –

+0

@ PM2Ring:TotalWallArea和TotalWindowArea最初是在'Maths'之外定義的。 –