56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
# loop:
|
|
# ask for name max length 10 (retry until suitable)
|
|
# ask for amount (hourly) (between 99p and £5.99) (retry until suitable)
|
|
# after user confirms they are done entering data,
|
|
# print out the data in tabular format with suitable column headings
|
|
# use main() function and functions with docstrings
|
|
|
|
def get_name():
|
|
collect = True
|
|
while collect:
|
|
name = input("Enter the activity: ")
|
|
if len(name) > 10:
|
|
print("Name too long. Please try again.")
|
|
continue
|
|
else:
|
|
collect = False
|
|
return name
|
|
|
|
def get_amount():
|
|
collect = True
|
|
while collect:
|
|
amount = float(input("Enter activity hourly rate in pence: "))
|
|
# if less than 99 pence or greater than 599
|
|
if amount < 99 or amount > 599:
|
|
print("Amount out of range. Please try again.")
|
|
continue
|
|
else:
|
|
collect = False
|
|
return amount
|
|
|
|
def print_data(data):
|
|
print("\nActivity - Amount")
|
|
print("-" * 15)
|
|
for activity in data:
|
|
print(f"{activity[0]} - {f"£{activity[1]/100}"}")
|
|
|
|
def main():
|
|
run = True
|
|
|
|
data = []
|
|
|
|
while run:
|
|
activity = get_name()
|
|
amount = get_amount()
|
|
print(f"{activity} - {f"£{amount/100}"}")
|
|
user_choice = input("Would you like to add another activity? (y/n): ")
|
|
if user_choice.strip().lower() == "n":
|
|
run = False
|
|
|
|
data.append([activity, amount])
|
|
|
|
print_data(data)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|