- Exercise 1: Rewrite your pay computation to give the employee 1.5 times the hourly rate for hours worked above 40 hours.
Enter Hours: 45
Enter Rate: 10
Pay: 475.0
hours=input('Enter Hours: ')
rate=input('Enter Rate: ')
fhours=float(hours)
frate=float(rate)
if fhours>40:
jiben=fhours*frate
duozen=(fhours-40)*(frate*0.5)
pay=jiben+duozen
else:
pay=fhours*frate
print('Pay:',pay)
- Exercise 2: Rewrite your pay program using try and except so that your program handles non-numeric input gracefully by printing a message and exiting the program. The following 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
hours=input('Enter Hours: ')
rate=input('Enter Rate: ')
try:
fhours=float(hours)
frate=float(rate)
except:
print('Error,please enter numeric input')
quit()
print(fhours,frate)
if fhours>40:
jiben=fhours*frate
duozen=(fhours-40)*(frate*0.5)
pay=jiben+duozen
else:
pay=fhours*frate
print('Pay:',pay)
- Exercise 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
score=input('Enter score:')
try:
fscore=float(score)
except:
print('Bad score')
quit()
if fscore<0 or fscore>1:
print('Bad score')
quit()
if fscore>=0.9:
print('A')
elif fscore>=0.8:
print('B')
elif fscore>=0.7:
print('C')
elif fscore>=0.6:
print('D')
else:
print('F')
1 范围之外的if之后的那个quit是有必要的,不写的话,如果是10,会先print雏Bad score,再print出A来。(还是有什么办法解决掉这个问题?_ ?
2 范围之外的测试用try无解,虽然结果都是要出来Bad score,但是用try会直接出来A,好尴尬= =