У меня возникли проблемы с передачей значений через цикл while. Ive закодировано ниже с некоторым псевдокодом на месте, но я не уверен, как добиться результата, но я добавил свой код ниже, чтобы помочь, если это возможно. Часть ошибки, в которой передаются значения через цикл whileПередача значений через ошибку цикла
Во-первых, мой двойной список значений приведен ниже. Что касается названия, пищеблок, Northing
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], чтобы передать имя, но оно не будет работать. Кроме того, добавление плюс от 1 до L, похоже, не продолжает цикл. Есть ли способ передать все значения из одной строки в цикл while и протестировать ее. Т.е. передайте Perth.csv в список станций (строка L, столбец 1), 476050 в список станций (строка L, столбец 2) и 7709929 в список станций (строка L, столбец 3)
Как только это будет сделано, повторите для Мельбурна и Сиднея данные
Вы не увеличиваете L на единицу. Вы устанавливаете его на +1. Правильный синтаксис L + = 1 – andyn
@andyn спасибо за это :) Я даже не понял. Мой рукописный код передо мной даже говорит L + = 1, но я не перенес его. Спасибо за вашу помощь – user2598164