Programming for Everybody (Getting Started with Python)
2.2
Write a program that uses input to prompt a user for their name and then welcomes them. Note that input will pop up a dialog box. Enter Sarah in the pop-up box when you are prompted so your output will match the desired output.
name = input("Enter your name:")
print("Hello",name)
2.3
Write a program to prompt the user for hours and rate per hour using input to compute gross pay. Use 35 hours and a rate of 2.75 per hour to test the program (the pay should be 96.25). You should use input to read a string and float() to convert the string to a number. Do not worry about error checking or bad user data.
hrs = input("Enter Hours:")
rate = input("Enter Rate:")
hrs_f = float(hrs)
rate_f = float(rate)
pay = hrs_f*rate_f
print('Pay:', pay)
3.1
Write a program to prompt the user for hours and rate per hour using input to compute gross pay. Pay the hourly rate for the hours up to 40 and 1.5 times the hourly rate for all hours worked above 40 hours. Use 45 hours and a rate of 10.50 per hour to test the program (the pay should be 498.75). You should use input to read a string and float() to convert the string to a number. Do not worry about error checking the user input - assume the user types numbers properly.
hrs = input("Enter Hours:")
rate = input("Enter Rate:")
h = float(hrs)
r = float(rate)
if h > 40:
pay = 40*r+(h-40)*(r*1.5)
else:
pay = h*r
print(pay)
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. 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
If the user enters a value out of range, print a suitable error message and exit. For the test, enter a score of 0.85.
score = input("Enter Score: ")
s= float(score)
if s >=0.0 and s <= 1.0:
if s >= 0.9:
print('A')
elif s >= 0.8:
print('B')
elif s >= 0.7:
print('C')
elif s >= 0.6:
print('D')
elif s < 0.6:
print('F')
else:
print('Please enter a score between 0.0 and 1.0')
quit()
4.6
Write a program to prompt the user for hours and rate per hour using input to compute gross pay. Pay should be the normal rate for hours up to 40 and time-and-a-half for the hourly rate for all hours worked above 40 hours. Put the logic to do the computation of pay in a function called computepay() and use the function to do the computation. The function should return a value. Use 45 hours and a rate of 10.50 per hour to test the program (the pay should be 498.75). You should use input to read a string and float() to convert the string to a number. Do not worry about error checking the user input unless you want to - you can assume the user types numbers properly. Do not name your variable sum or use the sum() function.
def computepay(hour, rate):
if hour >= 40:
pay = (hour-40)*rate*1.5 + 40*rate
else:
pay = hour*rate
return pay
prompt_hrs = input("Enter Hours:")
prompt_r = input("Enter Rate:")
hrs = float(prompt_hrs)
r = float(prompt_r)
p = computepay(hrs, r)
print("Pay", p)
5.2
Write a program that repeatedly prompts a user for integer numbers until the user enters ‘done’. Once ‘done’ is entered, print out the largest and smallest of the numbers. If the user enters anything other than a valid number catch it with a try/except and put out an appropriate message and ignore the number. Enter 7, 2, bob, 10, and 4 and match the output below.
largest = None
smallest = None
while True:
prompt_num = input("Enter a number: ")
if prompt_num == "done":
break
try:
num = int(prompt_num)
if largest is None or num >= largest:
largest = num
if smallest is None or num <= smallest:
smallest = num
except:
print('Invalid input')
continue
print("Maximum is {}\nMinimum is {}".format(largest, smallest))
Python Data Structures
6.5
Write code using find() and string slicing (see section 6.10) to extract the number at the end of the line below. Convert the extracted value to a floating point number and print it out.
text = "X-DSPAM-Confidence: 0.8475"
p1 = text.find('0')
p2 = text.find('5')
num = text[p1: p2+1]
n = float(num)
print(n)
7.1
Write a program that prompts for a file name, then opens that file and reads through the file, and print the contents of the file in upper case. Use the file words.txt to produce the output below.
fname = input("Enter file name: ")
fh = open(fname)
inp = fh.read()
inp = inp.rstrip()
print(inp.upper())
7.2
Write a program that prompts for a file name, then opens that file and reads through the file, looking for lines of the form:
X-DSPAM-Confidence: 0.8475
Count these lines and extract the floating point values from each of the lines and compute the average of those values and produce an output as shown below. Do not use the sum() function or a variable named sum in your solution.
# Use the file name mbox-short.txt as the file name
fname = input("Enter file name: ")
fh = open(fname)
s = 0
n = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:"):
continue
p = line.find(':')
con0 = line[p+1:]
con = float(con0)
s += con
n += 1
ave = s/n
print("Average spam confidence:", ave)
8.4
Open the file romeo.txt and read it line by line. For each line, split the line into a list of words using the split() method. The program should build a list of words.