我在通過while循環傳遞值時遇到了問題。我在下面用一些僞代碼編碼到位,但我不確定如何實現結果,但是我附上了我的代碼以幫助解決問題。通過while循環傳遞值的錯誤部分通過while循環錯誤傳遞值
首先,我的雙值列表如下。這是指名稱,東向,北
Stationlist = [['perth.csv','476050','7709929'],['sydney.csv','473791','7707713'],['melbourne.csv','46576','7691097']]
這裏是我使用的代碼:
Import math
global Eastingbase
global Northingbase
Eastingbase=476050
Northingbase= 7709929
Def calculateDistance (northingOne, eastingOne, northingTwo, eastingTwo):
Base =100000
deltaEasting = eastingTwo -eastingOne
deltaNorthing = northingTwo -northingOne
Distance = (deltaEasting**2 + deltaNorthing**2) **0.5
If Distance < Base:
Return Distance
Def Radius():
1000
L=0
while L <= Len(Stationlist):
if calculateDistance(Eastingbase, Northingbase, Stationlist(row L, column 2),Stationlist(row L, column 3)) < Radius:
Relevantfilename = StationList (row L, column 1)
print Relevantfilename
L = +1
我的錯誤是,我不能確定如何從電臺列表中的值傳遞到時循環,然後繼續循環。我曾嘗試使用雙列表理解I.e [0] [1]來傳遞名稱,但它不起作用。對L加入加1似乎不會繼續循環。有沒有辦法將一行中的所有值傳入while循環並進行測試。即將Perth.csv傳遞給Stationlist(行L,第1列),476050到Stationlist(行L,第2列),並將7709929傳遞給Stationlist(行L,第3列)
一旦完成,然後重複墨爾本和悉尼數據
你不會將L遞增1。您將其設置爲+1。正確的語法是L + = 1 – andyn
@andyn謝謝你:)我甚至沒有意識到。我在我面前的手寫代碼甚至說L + = 1,但我沒有轉置它。感謝您的幫助 – user2598164