1 / 12

Starting Out with Programming Logic & Design Second Edition by Tony Gaddis

Chapter 7: Input Validation. Starting Out with Programming Logic & Design Second Edition by Tony Gaddis. Chapter Topics. 7.1 Garbage In, Garbage Out 7.2 The Input Validation Loop 7.3 Defensive Programming. 7.1 Garbage In, Garbage Out.

ploveday
Download Presentation

Starting Out with Programming Logic & Design Second Edition by Tony Gaddis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7:Input Validation Starting Out with Programming Logic & Design Second Edition by Tony Gaddis

  2. Chapter Topics 7.1 Garbage In, Garbage Out 7.2 The Input Validation Loop 7.3 Defensive Programming

  3. 7.1 Garbage In, Garbage Out If a program reads bad data as input, it will produce bad data as output • Programs should be designed to accept only good data • Input Validation • All input should be inspected before processing • If it’s invalid, it should be rejected and the user should be prompted to enter the correct data

  4. 7.1 Garbage In, Garbage Out

  5. 7.2 The Input Validation Loop Input validation is commonly done with a loop that iterates as long as input is bad Figure 7-1 Logic containing an input validation loop

  6. 7.2 The Input Validation Loop Python example: another = 'y' # Process one or more items. while another == 'y' or another == 'Y': print "AGAIN" # Do this again? another = raw_input('Do you have another item? ' + '(Enter y for yes): ')

  7. 7.2 The Input Validation Loop Priming readis the first input to be tested // Get a test result Display “Enter a test score.” Input score //Make sure it is not lower than 0. While score < 0 OR score > 100 Display “ERROR: The score cannot be less than 0 ” Display “or greater than 100.” Display “The the correct score.” Input score End While

  8. 7.2 The Input Validation Loop Priming readis the first input to be tested Python example: #Get a test result score = int(raw_input("Enter a test score: ")) #Make sure it is not lower than 0. while score < 0 or score > 100: print "ERROR: The score cannot be less than 0" print "or greater than 100" score = int(raw_input("Enter a test score: "))

  9. 7.2 The Input Validation Loop Writing Validation Functions • For complex validation, it is recommended to write a function. • This process can make the code look cleaner Validating String Input • Some strings must be validated such as those programs that ask for a specific string input like “yes” • Or programs that specify a string to be a specific length like password validation

  10. 7.3 Defensive Programming Input validation is defensive programming • The practice of anticipating both obvious and unobvious errors that can happen Types of errors to consider • Empty input, where a user accidentally hits enter before entering data • The user enters the wrong type of data

  11. 7.3 Defensive Programming Common errors to be aware of • State abbreviations should be 2-character strings • Zip codes should be in the proper format of 5 or 9 digits • Hourly wages and salary amounts should be numeric values and within ranges • Dates should be checked • Time measurements should be checked • Check for reasonable numbers

  12. # Global constants BASE_HOURS = 40 # Base hours per week OT_MULTIPLIER = 1.5 # Overtime multiplier def main(): hours_worked = int(raw_input("Enter number of hours worked: ")) # Get the hours worked and the hourly pay rate. pay_rate = float(raw_input('Enter the hourly pay rate: ')) # Calculate and display the gross pay. if hours_worked > BASE_HOURS: calc_pay_with_OT(hours_worked, pay_rate) else: calc_regular_pay(hours_worked, pay_rate) # The calc_pay_with_OT function calculates pay with # overtime. It accepts the hours worked and the hourly # pay rate as arguments. The gross pay is displayed. def calc_pay_with_OT(hours, rate): # Calculate the number of overtime hours worked. overtime_hours = hours - BASE_HOURS #Calculate the amount of overtime pay. overtime_pay = overtime_hours * rate * OT_MULTIPLIER #Calculate the gross pay. gross_pay = BASE_HOURS * rate + overtime_pay # Display the gross pay. print 'The gross pay is $%.2f.' % gross_pay # The calc_regular_pay function calculates pay with no overtime. It accepts the hours worked and the hourly # pay rate as arguments. The gross pay is displayed. def calc_regular_pay(hours, rate): # Calculate the gross pay. gross_pay = hours * rate # Display the gross pay. print 'The gross pay is $%.2f.' % gross_pay # Call the main function. main()

More Related