[Tutor] Fwd: Re: Passing arguments?

Jenny Allar jennyallar at gmail.com
Tue Oct 22 04:23:51 CEST 2013


Thank you all for your help with this program. Each of your answers helped
me piece together an understanding of the assignment. After several days
and clearly over-thinking the entire process, I ended up using the
following code:

def main ():
    name = input("Please enter the name of the product: ")
    weight = float(input("Please enter the weight of the product in pounds:
"))

    cal_shiprate (name, weight)

def cal_shiprate(product_name, product_weight):

    if product_weight < 10:
       ship_rate = 1.5
    elif product_weight >= 10 and product_weight < 25:
       ship_rate = 1.45
    else:
        ship_rate = 1.4

    total = product_weight * ship_rate

    print("")
    print(product_name, "weight in pounds              ", format
(product_weight, '9,.2f'))
    print ("Your total to ship", product_name, "is:      $", format (total,
'9,.2f'))




main ()




On Sun, Oct 20, 2013 at 6:01 PM, Ricardo Aráoz <ricaraoz at gmail.com> wrote:

>  Sorry, I sent this answer to the OP directly and not to the list.
>
> -------- Mensaje original --------  Asunto: Re: [Tutor] Passing arguments?  Fecha:
> Sun, 20 Oct 2013 11:25:52 -0300  De: Ricardo Aráoz <ricaraoz at gmail.com><ricaraoz at gmail.com>  A:
> Jenny Allar <jennyallar at gmail.com> <jennyallar at gmail.com>
>
>
> El 20/10/13 01:20, Jenny Allar escribió:
>
>  I've written the code below the assignment, and I think I have
> everything covered in terms of asking the user for the information I need
> and somehow calculating costs, but I'm just ridiculously confused on the
> order and placement of the functions and components of this program-
> specifically the shiprate variable. Thank you in advance for any help.
>
>
> Ok, just a couple of things first.
>
> - Your assignment specifically says 'always use "while loops" to validate'
> but I see no loop at all in your code. You might want to look into it.
>
>     - What your assignment points to when it says to use "while loops" is
> that you should validate that what the user inputs is a valid number. If
> the user will input something else than a number as the weight then when
> you apply the int() function an exception will be flagged and your program
> will terminate ungracefully. You may validate input using "exceptions" and
> "while loops" (look it up).
>
> - Your functions should do what their name imply, and preferably do only
> one thing. Having a function named calc_weight_large() that also prints the
> shipping cost is not good.
>
> - Your if asks for >= 10 and your elif for <= 10 when the "= 10" case was
> already handled by the first if, that is a mistake. Besides which it might
> be better looking (though this is a matter of personal preference) if you ::
>         if weight > 25
>             # do something
>         elif weight > 10
>             # do something else
>         else
>             # do something entirely different
>
> - I would structure the program in the following way ::
>         def main():
>             product = in_product()
>             weight = in_weight()
>
>             if weight > 25
>                 total = calc_shipping(1.40, weight)
>             elif weight > 10
>                 total = calc_shipping(1.45, weight)
>             else
>                 total = calc_shipping(1.50, weight)
>             print_data(product, weight, total)
>
>  This is my assignment:
>
> Write a program that asks a user for the name of a product that they are
> ordering online and its weight.  The program must calculate the cost of
> shipping the product using the following cost structure.  If it weighs less
> than 10 pounds the cost is $1.50 per pound, if it is 10 pounds or more and
> less than 25 pounds then the cost is $1.45 per pound.  If the weight is 25
> pounds or more the cost is $1.40 per pound.  You may get the data from the
> user in main.  You must print the name of the product, the weight and the
> cost of shipping in a separate function.
>
>
>
> **********NOTE:  ALWAYS USE “WHILE LOOPS” To Validate********************
> # This program uses an if-else statement
>
> # It asks for the name of a product and the weight of that product.
> # It then determines the shipping cost as defined by the weight.
> #
> # Variable          Type          Purpose
> # product           string          hold for name of product
> # weight             float           hold for weight of product
> #
>
> def main ():
>     product = input("Please enter the name of the product: ")
>     weight = int(input("Please enter the weight of the product: "))
>
>     print('Product:', product)
>     print('Weight:', weight)
>
>     if weight <= 10:
>         shiprate = 1.5
>         calc_weight_small(weight, shiprate)
>     elif weight >= 10 and weight <= 25:
>         shiprate = 1.45
>         calc_weight_medium(weight, shiprate)
>     else:
>         shiprate = 1.4
>         calc_weight_large(weight, shiprate)
>
> # Calculate shipping cost for product less than 10 pounds
> def cacl_weight_small(weight, shiprate):
>     shiprate = 1.5
>     total = weight * shiprate
>
>
>  # Calculate shipping cost for product between 10 and 25 pounds.
> def calc_weight_medium(weight, shiprate):
>     shiprate = 1.45
>     total = weight * shiprate
>
>
>  # Calculate shipping cost for product over 25 pounds.
> #
> #This function calculates and prints the total cost
> # based on the weight category the product falls into
> # Variable            Type         Purpose
>
> #  weight               float        weight of product
> #  shiprate            float        cost per pound
> #  total                   float        total cost to ship product
> #
> def calc_weight_large(weight, shiprate):
>     shiprate = 1.4
>     total = weight * shiprate
>     print ()
>     print ("The cost to ship", product, "is:        $", format (total,
>  '9,.2f'))
>
> main ()
>
>
>
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20131021/b857a54f/attachment.html>


More information about the Tutor mailing list