Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def validate_parking(parking):
- parking = parking.strip()
- try:
- if parking.startswith('[') and parking.endswith(']'):
- parking = parking[1:-1]
- parking = [int(slot) for slot in parking.split(',')]
- if parking and all(slot in [0, 1] for slot in parking):
- return parking
- except ValueError:
- return None
- def calculate_occupancy(parking):
- slots = len(parking)
- spaces = parking.count(0)
- filled = slots - spaces
- occupied_percentage = int(round(filled / slots * 100))
- return slots, filled, spaces, occupied_percentage
- def report(car_parks):
- print('Car park occupancy levels\n')
- print("Park| Slots| Occpd| Vacant| % occupied ")
- print("----|------|------|-------|-------------")
- for park, car_park in enumerate(car_parks, start=1):
- parking = validate_parking(car_park)
- if parking:
- slots, filled, spaces, occupied_percentage = calculate_occupancy(parking)
- print(f'{park:3} | {slots:4} | {filled:4} | {spaces:4} | '
- f'{occupied_percentage:3}%')
- else:
- print(f'{park:3} | invalid data: {car_park.strip()}')
- def car_parks_occupancy(filename):
- try:
- car_parks = open(filename).readlines()
- except IOError:
- print(f'Unable to open data file{filename}')
- else:
- report(car_parks)
- car_parks_occupancy('car_parks.csv')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement