Considering taking a hammer to the computer...

Modulok modulok at gmail.com
Tue Jan 1 04:59:06 CET 2013


> I'm trying to help my son with an assignment and spending hours making an
> inch of progress.  I know nothing about programming and I'm trying to learn,
> on my own, at a rate faster than possible. I would love a little help!
>
> My son is taking an introductory course and his assignment is to use the
> loops for and while to create a program which calculates a hotel's occupancy
> rate. He has managed all of the "inputs" but needs help with the following:
>
> 1) The first question asked is how many floors are in the hotel - and then
> the questions are asked floor by floor.  We can't figure out how to get the
> program to stop questioning when the number of floors is reached.
>
> 2) He has programmed specific calculations for each floor, and now needs to
> have  calculations for the entire hotel based on the input about each
> floor.
>
> Here is what he has done so far:
>
>
> #This program will calculate the occupancy rate of a hotel
> floor_number = 0
>
>
> number_of_floors = int(input("How many floors are in the hotel?: "))
> while number_of_floors < 1:
>     print ("Invalid input!")
>     number_of_floors = input("Enter the number of floors in the hotel: ")
> while number_of_floors > 1:
>     floor_number = floor_number + 1
>     print()
>     print ("For floor #",floor_number)
>     rooms_on_floor = int(input("How many rooms are on the floor ?: " ))
>     while rooms_on_floor < 10:
>         print ("Invalid input!")
>         rooms_on_floor = int(input("Enter the number of rooms on floor: "))
>
>     occupied_rooms = int(input("How many rooms on the floor are occupied?:
> "))
>
>     #CALCULATE OCCUPANCY RATE FOR FLOOR
>     occupancy_rate = occupied_rooms / rooms_on_floor
>     print ("The occupancy rate for this floor is ",occupancy_rate)
>
>
>
> The following is what we believe needs to go in the program at the end
> except we can't figure out how to calculate it and make it all work :/ (alot
> of the terms have nothing at all to identify them yet...)
>
> hotel_occupancy = total_occupied / total_rooms
> print ("The occupancy rate for this hotel is ",hotel_occupancy)
> print ("The total number of rooms at this hotel is ",total_rooms)
> print ("The number of occupied rooms at this hotel is ",total_occupied)
> vacant_rooms = total_rooms - total_occupied
> print ("The number of vacant rooms at this hotel is ",vacant_rooms)
>
> We've searched and read and we found things about the "break" and "pass"
> commands but his teacher will not allow them because they haven't been
> taught yet.
>
> If you have any ideas and can take a minute to help, that would be great :)
>
> Thank you!


Here's your program with some extra comments to get you started:

    #This program will calculate the occupancy rate of a hotel
    floor_number = 0


    number_of_floors = int(input("How many floors are in the hotel?: "))
    while number_of_floors < 1:
        print ("Invalid input!")

        number_of_floors = input("Enter the number of floors in the hotel: ")
            # Remember you need to make sure this is an int, just like before.
            # number_of_floors = int(input("Enter the number of floors
in the hotel: ")) Right now it's a string.


    while number_of_floors > 1:
        # This loop runs forever, as number_of_floors never changes. You need
        # to do something to `number_of_floors` such as de-increment it e.g:
        # `number_of_floors -= 1`, that way we will *eventually* have
        # number_of_floors less than 1, thus stopping the loop. A better
        # idea would be to use a `for` loop instead of the above `while`
        # loop. For example::
        #
        #   for i in range(number_of_floors):
        #       # blah... do something for each floor. This loop
auto-terminates.
        #

        floor_number = floor_number + 1
        print()
        print ("For floor #",floor_number)
        rooms_on_floor = int(input("How many rooms are on the floor ?: " ))

        while rooms_on_floor < 10:
            print ("Invalid input!")
                # You might consider telling your user why their input is
                # invalid. e.g: "rooms on floor must be greater than 10".

            rooms_on_floor = int(input("Enter the number of rooms on floor: "))


        occupied_rooms = int(input("How many rooms on the floor are
occupied?: "))

        #CALCULATE OCCUPANCY RATE FOR FLOOR
        occupancy_rate = occupied_rooms / rooms_on_floor
        print ("The occupancy rate for this floor is ",occupancy_rate)


-Modulok-



More information about the Python-list mailing list