Я пытаюсь сделать эту программную функцию рекурсивным образом. Программа принимает файл csv, вызывает столбцы и принимает расстояние между начальной и конечной точками. В пределах длин 10 миль случайные выборки берутся из начальной точки и до конечной точки. Если образец все еще меньше конечной точки - 2, новый образец берется, затем милями по дороге от varOut. Моя цель - сделать эту программу рекурсивно. Но я новый для рекурсии. На данный момент единственным выходом im становится «Нет», поэтому им интересно, что именно вызывает это.Попытка рекурсии в Python
import csv
import math
import random as r
def yielderOut(length):
n = 0
rounder = 3
readerIn()
for col in csv.DictReader(open('2015_FILES_COMBINED.CSV')):
corridorRB = str(col['CORRIDOR_CODE_RB'])
begMi = float(col['FRFPOST'])
endMi = float(col['TRFPOST'])
dir_ = str(col['DIR'])
if abs(begMi - endMi) > length and dir_ == 'I':
varOut = round(r.uniform((math.ceil(begMi) + 1), (math.floor(begMi) + (length))), rounder)
if varOut < (endMi - 2):
return yielderOut(varOut + length), n + 1
else:
return corridorRB, round(begMi, rounder), round(endMi, rounder), 'Increasing', varOut, n
yielderOut(10)
данные
CORRIDOR_CODE_RB FRFPOST TRFPOST DIR
C000001E 0 667.145996 I
C000001E 667.145996 0 D
C000003N 0 110.5 I
C000003N 110.5 0 D
И в чем ваш вопрос? –
Кроме того, вы можете поместить все операторы 'import' в начале файла; это более аккуратно. –
Хорошо хороший совет. Я снова редактировал вступительное сообщение, которое дает больше ответа на вопрос. –