472,129 Members | 1,772 Online

Newbee Question

This is probably a simple code. I am a truck driver who gets paid by
stops and cases. I am trying to figure out how to code my stop pay. I
get 40 cents per stop up to 22 stops, and \$1.40 per stops after that.

Aug 20 '07 #1
16 960
On Aug 20, 9:23 am, "HD1956" <hd7...@hotmail.comwrote:
This is probably a simple code. I am a truck driver who gets paid by
stops and cases. I am trying to figure out how to code my stop pay. I
get 40 cents per stop up to 22 stops, and \$1.40 per stops after that.
def calc(num):
if num < 23:
return 0.4 * num
else:
overtime = num - 22
x = 0.4 * 22
x += overtime * 1.4
return x

# Use your own brain next time

Mike

Aug 20 '07 #2
On 8/20/07, ky******@gmail.com <ky******@gmail.comwrote:
On Aug 20, 9:23 am, "HD1956" <hd7...@hotmail.comwrote:
This is probably a simple code. I am a truck driver who gets paid by
stops and cases. I am trying to figure out how to code my stop pay. I
get 40 cents per stop up to 22 stops, and \$1.40 per stops after that.

def calc(num):
if num < 23:
return 0.4 * num
else:
overtime = num - 22
x = 0.4 * 22
x += overtime * 1.4
return x

# Use your own brain next time

Mike

--
http://mail.python.org/mailman/listinfo/python-list

Mike,

I wonder if we were both just duped into helping someone with their homework...

Shawn
Aug 20 '07 #3
HD1956 schrieb:
This is probably a simple code. I am a truck driver who gets paid by
stops and cases. I am trying to figure out how to code my stop pay. I
get 40 cents per stop up to 22 stops, and \$1.40 per stops after that.
Sounds a bit like homework. Which usually isn't simply delivered here.

Can you show us some code you worked on, then we might suggest enhancements.

Diez
Aug 20 '07 #4
On Aug 20, 9:58 am, "Shawn Milochik" <Sh...@Milochik.comwrote:
On 8/20/07, kyoso...@gmail.com <kyoso...@gmail.comwrote:
On Aug 20, 9:23 am, "HD1956" <hd7...@hotmail.comwrote:
This is probably a simple code. I am a truck driver who gets paid by
stops and cases. I am trying to figure out how to code my stop pay. I
get 40 cents per stop up to 22 stops, and \$1.40 per stops after that.
def calc(num):
if num < 23:
return 0.4 * num
else:
overtime = num - 22
x = 0.4 * 22
x += overtime * 1.4
return x
# Use your own brain next time
Mike
--
http://mail.python.org/mailman/listinfo/python-list

Mike,

I wonder if we were both just duped into helping someone with their homework...

Shawn
I like to write code, so it's not a big deal when it's something so
simple. Still, that is beyond dumb! Nice code, by the way.

Mike

Aug 20 '07 #5
I like to write code, so it's not a big deal when it's something so
simple. Still, that is beyond dumb! Nice code, by the way.

Mike
Yeah, it was fun to write anyway. Thanks for the compliment on the
code. I still consider myself a Python newbie, so it's good to know
I'm not trying to write it like Perl or VBScript anymore. ^_^

Shawn
Aug 20 '07 #6
Diez B. Roggisch wrote:
Sounds a bit like homework. Which usually isn't simply delivered here.

Wrong! Usually that happens pretty quickly here (as proven again in this
case). Not that it should, but only the seniors seem to detect lazy
learners.

/W
Aug 20 '07 #7
On Aug 20, 9:23 am, "HD1956" <hd7...@hotmail.comwrote:
This is probably a simple code. I am a truck driver who gets paid by
stops and cases. I am trying to figure out how to code my stop pay. I
get 40 cents per stop up to 22 stops, and \$1.40 per stops after that.
You'll get top marks for turning in the shortest program!

norm = 0.4
ot = 1.4-norm
otStart = 22
calcPay = lambda stops : norm*stops+ot*max(stops-otStart,0)

-- Paul

Aug 20 '07 #8
On 2007-08-20, HD1956 <hd****@hotmail.comwrote:
This is probably a simple code. I am a truck driver who gets
paid by stops and cases. I am trying to figure out how to code
my stop pay. I get 40 cents per stop up to 22 stops, and \$1.40
per stops after that.
I wish *I* could make a deal like that. I stop working all the
time!

--
Neil Cerutti
Customers who consider our waitresses uncivil ought to see the manager --sign
at New York restaurant
Aug 20 '07 #9
On Aug 20, 11:06 am, kyoso...@gmail.com wrote:
On Aug 20, 9:58 am, "Shawn Milochik" <Sh...@Milochik.comwrote:

On 8/20/07, kyoso...@gmail.com <kyoso...@gmail.comwrote:
On Aug 20, 9:23 am, "HD1956" <hd7...@hotmail.comwrote:
This is probably a simple code. I am a truck driver who gets paid by
stops and cases. I am trying to figure out how to code my stop pay. I
get 40 cents per stop up to 22 stops, and \$1.40 per stops after that.
def calc(num):
if num < 23:
return 0.4 * num
else:
overtime = num - 22
x = 0.4 * 22
x += overtime * 1.4
return x
# Use your own brain next time
Mike
--
>http://mail.python.org/mailman/listinfo/python-list
Mike,
I wonder if we were both just duped into helping someone with their homework...
Shawn

I like to write code, so it's not a big deal when it's something so
simple. Still, that is beyond dumb! Nice code, by the way.

Mike- Hide quoted text -

- Show quoted text -
Thanks for the help. By the way I am trying to learn the python after
work and on weekends. If it was a dumb question, to this group, I will
not bother you all again.
Without help it will take me longer to learn. Thanks

Aug 20 '07 #10
Oh well since a few solutions have already been posted I thought I
might add another, just so you at the very least you have to do some
work making up your mind which one to choose. Using an incremental
approach just to be different ...

from decimal import Decimal

normal = Decimal('0.04')
over = Decimal('1.40)

def calcStopPay (stops) :
pay = Decimal('0.00')
while stops :
incr = normal if stops < 23 else over
pay += incr
stops -= 1
return pay

#testing:
for x in range(50) :
print "Stop pay for %s stops: \$%s" % (x, calcStopPay(x))

Aug 21 '07 #11
On Aug 21, 5:41 pm, Asun Friere <afri...@yahoo.co.ukwrote:
over = Decimal('1.40)
oops, that should of course be:
over = Decimal('1.40')

Aug 21 '07 #12
On Aug 21, 5:51 pm, Asun Friere <afri...@yahoo.co.ukwrote:
On Aug 21, 5:41 pm, Asun Friere <afri...@yahoo.co.ukwrote:over = Decimal('1.40)

oops, that should of course be:
over = Decimal('1.40')
oh boy ... and it should also be
normal = Decimal('0.40')

I really need to test before posting ...

Aug 21 '07 #13
hd****@yahoo.com wrote:
[...]
>
Thanks for the help. By the way I am trying to learn the python after
work and on weekends. If it was a dumb question, to this group, I will
not bother you all again.
Without help it will take me longer to learn. Thanks
Don't worry about it. There is also a list specifically for learners,
which you can find out about at

http://mail.python.org/mailman/listinfo/tutor

Welcome to the Python community!

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

Aug 21 '07 #14
hd****@yahoo.com wrote:
[...]
>
Thanks for the help. By the way I am trying to learn the python after
work and on weekends. If it was a dumb question, to this group, I will
not bother you all again.
Without help it will take me longer to learn. Thanks
Don't worry about it. There is also a list specifically for learners,
which you can find out about at

http://mail.python.org/mailman/listinfo/tutor

Welcome to the Python community!

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------
Aug 21 '07 #15
On Aug 21, 11:52 am, "hd1...@yahoo.com" <hd1...@yahoo.comwrote:
I tryed your code and got an error message #I use Wing IDE:
Python 2.2.3 (#42, May 30 2003, 18:12:08) [MSC 32 bit (Intel)]

Evaluating lines 1-16 from truckStops.py
<string>:7: Warning: 'yield' will become a reserved keyword in the
future
Could not execute because an error occurred:
invalid syntax: <string>, line 7, pos 19:
yield stops, wage
Python 2.2.3 is three versions behind. Generators only work in 2.2 by
saying:

from __future__ import generators

And by default in anything from 2.3 on.

Fred

Aug 21 '07 #16
On Aug 21, 2:57 am, Dennis Lee Bieber <wlfr...@ix.netcom.comwrote:
[...]
>
pay = min(num, 22) * 0.4 + max(num-22, 0) * 1.4
pay = num*0.4 + (num>22)*(num-22)

;-)

-=Dave

Aug 21 '07 #17