Как рассчитать общую зарплату внутри цикла for

Я хочу подсчитать общее количество пенсов после того, как пользователь ввел определенное количество дней, и цикл for запускается, давая количество «пенсов» после каждой итерации. Я хочу просуммировать всю правую колонку, чтобы она давала итоговую сумму в формате $ xx.xx.

 numberOfDaysWorked = int(input ("Enter the amount of days worked: \n")) #Asking the user to enter the amount of days they have worked
 salary = 0.01 #setting the inital amount of pennies 
 total = 0.00
 print( "Day\tSalary\n---\t----" ) #printing out the titles for days and salary
 for currentDay in range(numberOfDaysWorked): 
      salary += 2 * salary # this is adding the amount of pennies earned that day to the total amount of pennies that will be used toward the total
      print (currentDay + 1, "\t", salary) #printing out the day (+1 to ensure progression from day1 to day2 to day3 etc. and then printing out the amount of pennies earned on that one day)


     print ("Total Pay: $", totalPay) 

Я запутался, зачем вам цикл for для расчета зарплаты? Разве нельзя просто умножить почасовую заработную плату * часы, отработанные на этой неделе? А кому платят гроши?

J0hn 13.09.2018 21:57

это просто упражнение, которое они делают, чтобы показать, как работают циклы for при вводе пользователем данных. Я просто пытаюсь сложить сумму цикла for

alyssadurante95 13.09.2018 22:01
1
2
1 490
4

Ответы 4

Сумма вашего цикла for - это просто переменная salary после завершения цикла for. Хотя проверьте свою математику. Это 2 кажется неуместным.

Обновлено:

Основываясь на ваших комментариях, просто используйте свою переменную totalPay в цикле for:

num_days_worked = int(input("Enter the amount of days worked: \n")) 
salary = 0.01 
total_pay = 0.00
print( "Day\tSalary\n---\t----" )
for current_day in range(num_days_worked):
    salary += 2 * salary 
    print (current_day + 1, "\t", salary)
    total_pay += salary

Обязательно объясните свои вопросы в следующий раз лучше, из-за этого здесь много разных результатов!

это не потому, что это не принимает во внимание все выходные данные по зарплате до этого. предполагается, что зарплата будет удваиваться каждый день, чтобы результат был следующим: день 1: 0,03 цента, день 2: 0,09 цента, день 3: 0,27 и т. д. а затем в конце сложите все эти значения

alyssadurante95 13.09.2018 22:04

Да, вы используете + =, вы увеличиваете количество в каждом цикле.

cap 13.09.2018 22:05

Ваш вопрос очень запутанный. Вы имеете в виду, что ежедневно ваша дневная зарплата увеличивается в 3 раза? Предоставит ли этот код необходимую информацию?

 numberOfDaysWorked = int(input ("Enter the amount of days worked: \n")) #Asking the user to enter the amount of days they have worked

salary = 0.01  # setting the inital amount of pennies
total = 0.00
print("Day\tSalary\n---\t----")  # printing out the titles for days and salary
for currentDay in range(numberOfDaysWorked):
    salary += 2 * salary
    total += salary  # this is adding the amount of pennies earned that day to the total amount of pennies that will be used toward the total
    print(currentDay + 1, "\t",
          salary)  # printing out the day (+1 to ensure progression from day1 to day2 to day3 etc. and then printing out the amount of pennies earned on that one day)

print("Total Pay: $", total)

Выход для входа 10:

Day Salary
--- ----
1    0.03
2    0.09
3    0.27
4    0.81
5    2.43
6    7.290000000000001
7    21.870000000000005
8    65.61000000000001
9    196.83000000000004
10   590.4900000000001
Total Pay: $ 885.7200000000003

У вас есть total и salary. Добавьте salary к total внутри цикла, чтобы получить "общую" зарплату:

    ...
    print (currentDay + 1, "\t", salary)
    ## add these lines ...
    print ("Total Pay: $", salary)
    total += salary

print ("Total salary: $%.2f" % total)

Демо:

Enter the amount of days worked: 
4
Day Salary
--- ----
1    0.03
Total Pay: $ 0.03
2    0.09
Total Pay: $ 0.09
3    0.27
Total Pay: $ 0.27
4    0.81
Total Pay: $ 0.81
Total salary: $1.20   # equals 0.03 + 0.09 + 0.27 + 0.81

Я думаю, ваша проблема в том, что вы никогда ничего не добавляли к переменной «total» во время цикла.

numberOfDaysWorked = int(input ("Enter the amount of days worked: \n"))
salary = 0.01 #setting the inital amount of pennies 
total = 0.00
print( "Day\tSalary\n---\t----" ) 
for currentDay in range(numberOfDaysWorked):
    salary += 2 * salary
    total += salary
    print (currentDay + 1, "\t", salary)
print ("Total Pay: $"+str(total)) 

Выход:

Enter the amount of days worked: 
5
Day Salary
--- ----
1    0.03
2    0.09
3    0.27
4    0.81
5    2.43
Total Pay: $3.6300000000000003

Другие вопросы по теме