Contents

  1. birthyear.py
  2. evenorodd.py
  3. speedingticket.py

birthyear.py 1/3

[
top][prev][next]
# This program calculates your birthyear, 
# given your age and the current year.
# Sara Sprenkle

print("This program determines your birth year")
print("given your age and current year")
print()

age = eval(input("Enter your age: "))

if age > 120:
    print("Don't be ridiculous, you can't be that old.")
else:
    currentYear = eval(input("Enter the current year: "))
    birthyear = currentYear - age
    print()
    print("You were either born in", birthyear, end='')
    print("or", birthyear-1)
print("Thank you.  Come again.")


evenorodd.py 2/3

[
top][prev][next]
# This program determines whether a number is even or odd
# Sara Sprenkle

x = eval(input("Enter a number: "))

remainder = x%2

if remainder == 0:
    print(x, "is even")

if remainder == 1:
	print(x, "is odd")
    
# alternatively, we should use an "else" statement
# instead of the second if statement because it is more efficient.
# In this case, we are only doing one check of a condition.
# If the condition is false, then execute the else.

if remainder == 0:
    print(x, "is even")
else:
    print(x, "is odd")

speedingticket.py 3/3

[
top][prev][next]
# Any speed clocked over the limit results in a fine of at least $50, plus $5
# for each mph over the limit, plus a penalty of $200 for any speed over 90mph.
#
# Input: speed limit and the clocked speed
# Output: either (a) that the clocked speed was under the limit or 
# (b) the appropriate fine
# TODO: main
# CSCI 111

import test


def calculateFine(limit, speed):
    """
    Calculates and returns the fine if the speed is greater than the
    limit.
    Parameters:
    - limit: a non-negative integer representing the speed limit
    - speed: a non-negative integer representing the speed
    Returns the fine or 0 if not speeding
    """
    if limit>=speed:
        return 0
    mphOver = speed-limit
    fine = mphOver*5+50
    if speed > 90:
        fine = fine + 200    
    return fine

def calculateFine2(speedlimit, clockedspeed):
    # another implementation of the function
    if clockedspeed > speedlimit:
        mphOver = clockedspeed-speedlimit
        fine = mphOver*5 + 50
        if clockedspeed > 90:
            fine += 200
        return fine
    else:
        return 0

def testCalculateFine():
    #not speeding
    test.testEqual(calculateFine(35, 35), 0)
    test.testEqual(calculateFine(35, 34), 0)
    test.testEqual(calculateFine(100, 91), 0)
    # speeding
    test.testEqual(calculateFine(35, 36), 55)
    test.testEqual(calculateFine(35, 40), 75)
    test.testEqual(calculateFine(70, 90), 150)
    # aggressive speeding
    test.testEqual(calculateFine(50, 100), 500)
    test.testEqual(calculateFine(70, 91), 355)
    
    
testCalculateFine()

Generated by GNU Enscript 1.6.6.