Я пишу программу, использующую python3, чтобы упростить отчет, который я использую для работы. Это не должно быть архитектурно здоровым или элегантным, на самом деле я просто пробивал себе путь через него, вплоть до того, что он «работал».Функции, вызываемые не по порядку?
Методы сами по себе прекрасно работают, но когда я их ввожу, они не вызываются в порядке, когда я их запускаю. Я собираюсь опубликовать весь код здесь, потому что я знаю, что кто-то собирается спросить что-то, связанное с тем, что не отображается. Опять же, я написал это очень быстро, чтобы просто работать. Это не должно быть что-то построенное профессионалом.
Мой вопрос: почему мои методы не вызываются по порядку. Я делаю это так, чтобы словарные значения заполнялись входом , а затем предполагалось рассчитать предварительные значения. Но происходит то, что он вызывает метод расчета процентных ставок, поэтому я застреваю, получая деление по ошибке Zero (что да, когда вызывается из строя, потому что информация, технически технически еще не введена).
def enter_waste():
while True:
machine_selection = str(input('Please enter which machine you would like to enter the waste for: '))
for element in machine_list:
if machine_selection == element['name']:
print('You Have Selected: {}'.format(element['name']))
waste_input = int(input('Please enter the waste for this period: '))
element['waste'].append(waste_input)
if str(input('Do you want to continue? yes/no: ')) == 'no':
print("\nHere's everything as entered: \n")
for i, machine in enumerate(machine_list):
print(i, machine)
return False
def enter_weight():
machine_selection = str('Please enter which machine you would like to enter the produced weight for: ')
for element in machine_list:
if machine_selection == element['name']:
print('You have selected: {}'.format(element['name']))
weight_input = int(input('Please enter weight produced for this period: '))
element['weight'] = weight_input
if str(input('Do you want to continue? yes/no: ')) == 'no':
print("\nHere's everything as entered: \n")
for i, machine in enumerate(machine_list):
print(i, machine)
return False
def calculate_waste_percentage():
for element in machine_list:
percentage = (sum(element['waste'])/element['weight']) * 100
element['percentwaste'] = percentage
print('Machine: {}\nWeight Produced: {;,}\n% of Waste: {}%'.format(element['name'], element['weight'], percentage))
return percentage
Однако, когда я называю их по порядку, как это:
enter_waste(), enter_weight(), calculate_waste_percentage()
Это будет вызывать enter_waste()
, но затем перейти к calculate_waste_percentage
вместо запуска enter_weight()
. Есть ли способ исправить это?
Я сомневаюсь, что он должен вести себя так, как вы упомянули –
Почему бы не назвать их по одному, а не запятыми? – brthornbury
Это все код? Когда я пытаюсь запустить его, я получаю не определенные ошибки. –