возврат Python - «имя не определено»

Я пытаюсь получить этот скрипт для записи информации в основной текстовый файл. Я все еще изучаю Python.

Проблема заключается здесь:

file_text = """%s SHOOT DETAILS\n
Number of shoots:\t %s
Maximum range:\t %s
Number of firers:\t %s
Number of lanes active:\t %s
Number of details:\t %s
Troops per detail:\t %s
\n 
RANGE STAFF
Ammo NCO:\t %s
Medical Supervisor:\t %s
IC Butts:\t %s""" % (shoot_name, number_of_shoots, max_range, number_of_firers, number_of_lanes, number_of_details, size_of_details, ammo_nco, medical_supervisor, ic_butts)

Сообщение об ошибке: NameError: имя 'number_of_details' не определено

Выше (предположительно) записано в файл с этим:

def generatedocument():
    file = open(file_name, 'w')
    file.write(file_text)
    os.startfile(file_name)

Однако я определил это ранее в следующей функции:

def detailformation():
    number_of_details = number_of_firers / number_of_lanes
    return number_of_details

Идентичные проблемы возникают для size_of_details, определенного:

def detailsizer():
    size_of_details = number_of_firers / detailformation()
    return size_of_details

А также с функцией выбора персонала диапазона, иногда это дает мне подобную ошибку. Они приходят из этой функции, которая случайным образом выбирает их из списка:

def range_staff():
    print "\n"
    ammo_nco = (random.choice(fiveplatoon))
    print "Ammo NCO: "+ammo_nco
    fiveplatoon.remove(ammo_nco)
    medical_supervisor = (random.choice(fiveplatoon))
    print "Medical supervisor: "+medical_supervisor
    fiveplatoon.remove(medical_supervisor)
    ic_butts = (random.choice(fiveplatoon))
    print "IC Butts/Console: "+ic_butts
    fiveplatoon.remove(ic_butts)
    return range_staff

Кажется, я здесь упускаю что-то фундаментальное. Как я могу заставить Python распознавать?

Ответы на вопрос(3)

Ваш ответ на вопрос