Answer:
def calculate_bill(service_code, minutes_day, minutes_night):
if service_code in ['r', 'R']: # Regular service
total_minutes = minutes_day + minutes_night
if total_minutes <= 50:
return 10.00
else:
excess_minutes = total_minutes - 50
return 10.00 + (excess_minutes * 0.20)
elif service_code in ['p', 'P']: # Premium service
total_minutes_day = minutes_day
total_minutes_night = minutes_night
if total_minutes_day > 75:
excess_minutes_day = total_minutes_day - 75
else:
excess_minutes_day = 0
if total_minutes_night > 100:
excess_minutes_night = total_minutes_night - 100
else:
excess_minutes_night = 0
return 25.00 + (excess_minutes_day * 0.10) + (excess_minutes_night * 0.05)
else:
return -1 # Invalid service code
def main():
while True:
account_number = input("Enter account number: ")
service_code = input("Enter service code (R for Regular, P for Premium): ").strip().lower()
if service_code not in ['r', 'p']:
print("Invalid service code. Please enter R for Regular or P for Premium.")
continue
try:
minutes_day = float(input("Enter the number of minutes used during the day: "))
minutes_night = float(input("Enter the number of minutes used during the night: "))
if minutes_day < 0 or minutes_night < 0:
print("Minutes cannot be negative. Please enter valid values.")
continue
bill_amount = calculate_bill(service_code, minutes_day, minutes_night)
if bill_amount != -1:
print("\\Account Number:", account_number)
print("Service Type:", "Regular" if service_code == 'r' else "Premium")
print("Minutes Used (Day):", minutes_day)
print("Minutes Used (Night):", minutes_night)
print("Amount Due: $", format(bill_amount, '.2f'))
else:
print("Invalid service code. Please enter R for Regular or P for Premium.")
except ValueError:
print("Invalid input. Please enter valid numeric values.")
another_transaction = input("Do you want to continue (YES/NO)? ").strip().lower()
if another_transaction != 'yes':
break
if __name__ == "__main__":
main()
Step-by-step explanation: