1 of 14

CS 110

Functions,

Parameters, Arguments

Benjamin Dicken

2 of 14

Arguments and Parameters

  • It is possible to send values to functions when called

  • When the function is defined, must specify one or more parameter variables
  • When the function is called, must specify one or more arguments

3 of 14

def print_info(name):

print('Hi', name)

print('How are you?')

more code . . .

print_info('Joe')

more code . . .

print_info('Joseph')

more code . . .

4 of 14

def print_taxes(salary):� if salary < 10000:� print('taxes are', (salary * 0.15))� elif salary < 50000:� print('taxes are', (salary * 0.20))� elif salary < 150000:� print('taxes are', (salary * 0.30))��print_taxes(27000)�print_taxes(150000)�print_taxes(1000)

salary is only available within this function

5 of 14

def print_taxes(salary):� if salary < 10000:� print('taxes are', (salary * 0.15))� elif salary < 50000:� print('taxes are', (salary * 0.20))� elif salary < 150000:� print('taxes are', (salary * 0.30))��money = int(input('Enter your salary: '))��print_taxes(money)

6 of 14

What would print out?:

Inputs: 5000

15000

123456

def print_taxes(salary):� if salary < 10000:� print('taxes are', (salary * 0.15))� elif salary < 50000:� print('taxes are', (salary * 0.20))� elif salary < 150000:� print('taxes are', (salary * 0.30))��index = 3while index > 0:� money = int(input('Enter your salary: '))� print_taxes(money)� index -= 1

Activity

7 of 14

What will this produce?

def print_class(units):� if units > 90:� print('senior')� elif units > 60:� print('junior')� elif units > 30:� print('sophomore')� elif units >= 0:� print('freshman')� else:� print('WAT')��print_class(20)�print_class(-5)�print_class(100)

Activity

8 of 14

What will this produce?

def print_status(units):� if units >= 12:� print('full-time')� else:� print('part-time')��semester = int(input('Semester Units: '))

total = int(input('Total Units: '))�print_status(semester)

print_class(total)

def print_class(units):� if units > 90:� print('senior')� elif units > 60:� print('junior')� elif units > 30:� print('sophomore')� else:� print('freshman')

Activity

9 of 14

What will this produce?

semester = int(input('Semester Units: '))

total = int(input('Total Units: '))�print_school_info(semester, total)

def print_school_info(semester_units, total_units):

if semester_units >= 12:

print('full-time')

else:

print('part-time')

if total_units > 90:

print('senior')

elif total_units > 60:

print('junior')

elif total_units > 30:

print('sophomore')

else:

print('freshman')

Activity

10 of 14

validate_name.py

import os

first = input('Enter first name: ')

if not first.isalpha() or len(first) > 15 or not first[0].isupper():

print('Invalid first name.')

os._exit(0)

middle = input('Enter middle initial: ')

if not middle.isalpha() or len(middle) > 1 or not middle[0].isupper():

print('Invalid middle initial.')

os._exit(0)

last = input('Enter last name: ')

if not last.isalpha() or len(last) > 30 or not last[0].isupper():

print('Invalid last name.')

os._exit(0)

print('Valid name!')

11 of 14

validate_name.py

What is redundant? What is different?

import os

first = input('Enter first name: ')

if not first.isalpha() or len(first) > 15 or not first[0].isupper():

print('Invalid first name.')

os._exit(0)

middle = input('Enter middle initial: ')

if not middle.isalpha() or len(middle) > 1 or not middle[0].isupper():

print('Invalid middle initial.')

os._exit(0)

last = input('Enter last name: ')

if not last.isalpha() or len(last) > 30 or not last[0].isupper():

print('Invalid last name.')

os._exit(0)

print('Valid name!')

Activity

12 of 14

validate_name.py

What is redundant? What is different?

import os

first = input('Enter first name: ')

if not first.isalpha() or len(first) > 15 or not first[0].isupper():

print('Invalid first name.')

os._exit(0)

middle = input('Enter middle initial: ')

if not middle.isalpha() or len(middle) > 1 or not middle[0].isupper():

print('Invalid middle initial.')

os._exit(0)

last = input('Enter last name: ')

if not last.isalpha() or len(last) > 30 or not last[0].isupper():

print('Invalid last name.')

os._exit(0)

print('Valid name!')

13 of 14

Write function validate_input

Can be called three times

What is redundant? What is different?

import os

first = input('Enter first name: ')

if not first.isalpha() or len(first) > 15 or not first[0].isupper():

print('Invalid first name.')

os._exit(0)

middle = input('Enter middle initial: ')

if not middle.isalpha() or len(middle) > 1 or not middle[0].isupper():

print('Invalid middle initial.')

os._exit(0)

last = input('Enter last name: ')

if not last.isalpha() or len(last) > 30 or not last[0].isupper():

print('Invalid last name.')

os._exit(0)

print('Valid name!')

Activity

14 of 14

Is this better?

import os

def validate_input(input_type, length):

value = input('Enter ' + input_type + ': ')

if not value.isalpha() or len(value) > length or not value[0].isupper():

print('Invalid ' + input_type + '.')

os._exit(0)

validate_cap_alpha_input('first name', 15)

validate_cap_alpha_input('middle initial', 1)

validate_cap_alpha_input('last name', 30)

print('Valid name!')