我正在使用python3编写程序来简化我用于工作的报告。它不应该在建筑上声音或优雅,我真的只是通过它,直到它工作"。
这些方法本身可以正常工作,但是当我输入它们时,它们在我运行它们时不会被按顺序调用。我要在这里发布整个代码,因为我知道有人会问一些与未显示的相关的内容。再一次,我写这个很快就是为了工作。它不应该是由专业人士建造的任何东西。
我的问题是,为什么我的方法没有按顺序调用。我是这样做的,因此字典值由输入填充,然后它应该计算预百分比。但是会发生的是,它无序地调用计算百分比方法,因此我很难通过零错误得到除法(当无序调用时,是的,因为技术上所需的信息还没有输入然而)。
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()
。有没有办法来解决这个问题?
答案 0 :(得分:2)
您的input
功能缺少input_weight()
来电:
machine_selection = str(input('...'))
而不是
machine_selection = str('...')
如上所述,您的代码会尝试在名为&#34的计算机上设置权重;请输入您想要输入生产权重的计算机:",该计算机不存在。
我建议还添加一个检查机器名称输入正确,以防止将来出现此类错误。