Transcript Slide 1

Solutions for the
second quiz
COSC 1306
Fall 2104
First Question

What is the difference between a compiled
language and an interpreted language? (2×5
points)
Answer

What is the difference between a compiled
language and an interpreted language?
(2×5 points)
A
compiled language is translated before
execution into binary code that can be
directly executed.
 An interpreted language is interpreted just
before and during execution into something
executable.
Second question

The University of Houston stores your names in
a “last name first followed by a comma and no
space” format as in “Edison,Thomas Alva”.
Write a Python 3 function adding a space after
the comma to and return something like
“Edison, Thomas Alva”, which is more pleasing
to the eye. (2×5 points).
(Hint: I would split the string at the comma and
rebuild it with the comma and the space.)
Answer

def student_name(uh_name):
lst = uh_name.split(',')
return lst[0] + ', ' + lst[1]
Space
Second question (variant)

The University of Houston stores your names in
a “last name first followed by a comma and no
space” format as in “Edison,Thomas Alva”.
Write a Python 3 function adding a space after
the comma to and return something like
“Thomas Alva Edison,”, which is more pleasing
to the eye. (2×5 points).
(Hint: I would split the string at the comma and
rebuild it with the space.)
Answer

def student_name(uh_name) :
lst = uh_name.split(',')
return lst[1] + ' ' + lst[0]
Third question

Write a Python function computing restaurant
tips.
 Your function should have as inputs the
amount on the check the purchase and the
tip rate in percent.
 In addition, it should assume a default tip
rate of 15 percent.
 For instance, tip(50) should return 7.50 and
tip(100, 18) should return 18. (2×5 points)
Answer

def tip(bill, rate = 15) :
return bill*rate/100
Fourth question


Consider the following list containing two
events, which themselves are lists:
 sched = [['1030', 'Faculty meeting']
['1430', 'COSC 1306']]
What would be the outcomes of the following
Python statements, taken individually?
(3×5 points)
 sched [0][0] = '1100'
 sched [0].append('Must attend')
 sched.pop(0)
Answer

sched = [['1030', 'Faculty meeting'] ['1430',
'COSC 1306']]
 sched [0][0] = '1100'

[['1100', 'Faculty meeting'] ['1430',
'COSC 1306']]
 sched [0].append('Must attend')

[['1030', 'Faculty meeting',
'Must attend'] ['1430', 'COSC 1306']]
 sched.pop(0)

[['1430', 'COSC 1306']]
Fifth question

If lst = ['Ann', 'Barbara', 'Charles'], what
would be the outcomes of the following Python
statements, taken individually? (4×5 points)

lst.pop()
 lst[0:1]
 lst[0]
 lst[:]
Answer

If lst = ['Ann', 'Barbara', 'Charles'], what would
be the outcomes of the following Python
statements, taken individually? (4×5 points)

lst.pop()
 lst[0:1]
 lst[0]
 lst[:]
['Ann', 'Barbara']
['Ann']
'Ann'
['Ann', 'Barbara', 'Charles']
Sixth question

Complete the following program to have it
compute the sum of all numbers entered. Your
program should end once the user has entered
a single minus sign and then print the total.
(4×5 points)
Sixth question

astring =input('Enter a number or a minus to
terminate: ')
sum = ___
while ___________:
sum =___________
________________
print('Total is ' + str(sum))
Answer

astring =input('Enter a number or a minus to
terminate: ')
sum = 0
while astring != '-' :
sum =sum + float(astring)
astring =input('Enter a number or a
minus to terminate: ')
print('Total is ' + str(sum))
Seventh question


Professor Jenkins has to compute her
semester averages. Each of her student
records consists of a student name followed by
the grades she gave for the essays she
assigned to her students as in:
['Avarez, Alonzo', 85, 70, 90, 85]
Given that all essays have the same weight,
what code will she write? (3×5 points)
(Hint: use the sum() and len() methods and
handle correctly students who have not turned
in any essay.)
Seventh question

def semester_average(record):
___________________________
if ________ :
return ______________
else:
return ______________
Answer

def semester_average(record):
essays= record[1:] # eliminate first entry
if len(essays) == 0 :
return 0
else:
return sum(essays)/len(essays)
Seventh question (variant)


Professor Patel has to compute her semester
averages. Each of her student records consists
of a student name followed by the grades she
gave for the essays she assigned to her
students as in:
['Alvarez', 'Alonzo', 85, 70, 90, 85]
Given that all essays have the same weight,
what code will she write? (3×5 points)
(Hint: use the sum() and len() methods and
handle correctly students who have not turned
in any essay.)
Answer

def semester_average(record):
essays= record[2:] # eliminate two entries
if len(essays) == 0 :
return 0
else:
return sum(essays)/len(essays)