Python for Everybody

Chapter 3

Exercise 3.1

"""
Exercise 3.1: Rewrite your pay computation to give the employee 1.5 times the
rate for hours worked above 40 hours.

Enter Hours: 45
Enter Rate: 10
Pay: 475.0

Python for Everybody: Exploring Data Using Python 3
by Charles R. Severance

Solution by Jamison Lahman, May 28, 2017
"""
pay = 0.0                                   # Initialize variables

input_hours = input('Enter Hours: ')
input_rate = input('Enter Rate: ')
hours = float(input_hours)                  # Only allows input floats
rate = float(input_rate)                    # Only allows input floats

if hours < 40:
    pay = rate * hours                      # No overtime calculation
else:
    overtime = hours - 40                   # Calculate amount of overtime
    pay = (rate * 40.0) + (1.5 * rate * overtime)

print('Pay: ', pay)
    

Exercise 3.2

"""
Exercise 3.2: Rewrite your pay program using try and except so that your
program handles non-numerical input gracefully by printing a message and
exiting the program. The folowing shows two executions of the program:

Enter Hours: 20
Enter Rate : nine
Error, please enter numeric input

Enter Hours: forty
Error, please enter numeric input

Python for Everybody: Exploring Data Using Python 3
by Charles R. Severance

Solution by Jamison Lahman, May 28, 2017
"""
hours = 0.0                                 # Initialize variables
rate = 0.0
pay = 0.0

input_hours = input('Enter Hours: ')
try:
    hours = float(input_hours)              # Only allows input floats
except ValueError:
    print('Error, please enter numeric input')
    quit()

input_rate = input('Enter Rate: ')
try:
    rate = float(input_rate)                # Only allows input floats
except ValueError:
    print('Error, please enter numeric input')
    quit()

if hours < 40:
    pay = rate * hours                      # No overtime calculation
else:
    overtime = hours - 40                   # Calculate amount of overtime
    pay = (rate * 40.0) + (1.5 * rate * overtime)

print('Pay: ', pay)
    

Exercise 3.3

"""
Exercise 3.3: Write a program to prompt for a score between 0.0 and 1.0. If the
score is out of range, print an error message. If the score is between 0.0 and
1.0, print a grade using the following table:
Score    Grade
>= 0.9      A
>= 0.8      B
>= 0.7      C
>= 0.6      D
< 0.6      F
~~~

Enter score: perfect
Bad score

Enter score: 10.0
Bad score

Enter score: 0.75
C

Enter score: 0.5
F

Run the program repeatedly as shown above to test the various, different
values for input.

Python for Everybody: Exploring Data Using Python 3
by Charles R. Severance

Solution by Jamison Lahman, May 28, 2017
"""
score = 0.0                                # Initialize variables
grade = ""

input1 = input('Enter score: ')
try:
    score = float(input1)                  # Only allows input floats
except ValueError:
    print('Bad score')
    quit()

if 0.0 <= score <= 1.0:                    # Scores must be between 0.0 and 1.0
    if score >= 0.9:
        grade = 'A'
    elif score >= 0.8:
        grade = 'B'
    elif score >= 0.7:
        grade = 'C'
    elif score >= 0.6:
        grade = 'D'
    else:
        grade = 'F'
else:
    grade = 'Bad score'

print(grade)