Пока я не буду смотреть на то, как вы отображаете повышение заработной платы каждого сотрудника, поскольку ваши печатные заявления, кажется, уже это делают?Без вашего файла 'program7.txt' я не вижу, что на самом деле создается, поэтому, возможно, вы сможете отредактировать вопрос, чтобы описать ваши текущие и желаемые результаты.
Вместо этого я буду вынужден помочь вам рассчитать средние значения.Ваша проблема в некоторой степени плохо определена, так как существует несколько способов подсчета «среднего значения повышения».Чтобы проиллюстрировать это, рассмотрим следующие входные данные.
+-------+--------+-------+------------+
| Name | Salary | Raise | New Salary |
+-------+--------+-------+------------+
| Bob | 100000 | 4% | 104000 |
| Sally | 40000 | 5.5% | 42200 |
| Dave | 55000 | 7% | 58850 |
+-------+--------+-------+------------+
| Total | 195000 | 10050 | 205050 |
+-------+--------+-------+------------+
Первая возможность состоит в том, чтобы рассчитать среднее повышение на человека , сложив повышение в процентах, а затем разделив на количество людей, т.е.
(4%+ 5% + 7%) / 3 = 16% / 3 = 5,333%
В качестве альтернативы можно рассчитать среднее повышение как функцию общей стоимости , сложив повышение и разделив на староезарплаты.т. е.
10050/195000 = 5,154%
Оба они являются «правильными»
Для первого метода вам потребуется добавить переменную для числа сотрудников.
Для второго метода вы можете рассчитать общее повышение, требуемое путем вычитания total
из newSalaryTotal
edit: все зарплаты из ваших входных данных вводятся в одну строку.
В данный момент ваши операторы if работают только с последним словом в каждой строке.В вашем случае вы, вероятно, хотите, чтобы он срабатывал один раз за слово.Для этого вам нужно сделать отступ для оператора if, который будет включен в цикл for, следующим образом
for word in words:
salary = float(word)
print(format(salary, '.2f'))
if salary > 60000.0:
newSalary = salary * 1.04
newSalaryTotal += newSalary
payRaise = newSalary - salary
total = total + salary
print('The original salary is: ', salary)
print('The pay raise is: ', payRaise)
elif salary > 50000.0:
newSalary = salary * 1.07
newSalaryTotal += newSalary
total = total + salary
payRaise = newSalary - salary
print('The original salary is: ', salary)
print('The pay raise is: ', payRaise)
elif salary < 50000.0:
newSalary = salary * 1.055
newSalaryTotal += newSalary
total = total + salary
payRaise = newSalary - salary
print('The original salary is: ', salary)
print('The pay raise is: ', payRaise)
lineRead = inFile.readline()
, альтернативно вы можете оставить свою программу без изменений и вместо этого отредактировать свои входные данные так, чтобы каждая зарплата была введена вновая линия, а не просто разделены пробелом.то есть как program7_2.txt