Programming-Challenges/20 Fundraiser part 1/excerise-01.py

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()