Программа на Python не принимает десятичный необработанный ввод

Я работаю над небольшим проектом расчета заработной платы на Python, где вы вводите имя сотрудника, заработную плату и отработанные часы. Когда я ввожу десятичные дроби для ввода заработной платы, я получаю «недопустимую запись» из-за моей обработки исключений. Почему десятичные числа возвращаются как недопустимые? Кроме того, как я могу зациклить эту программу, чтобы она сохраняла те же 3 вопроса, пока пользователь не наберет «Готово»? Любая помощь будет оценена! Спасибо!

import cPickle

def getName():
    strName="dummy"
    lstNames=[]
    strName=raw_input("Enter employee's Name: ")
    lstNames.append(strName.title() + " \n")


def getWage():
    lstWage=[]
    strNum="0"
    blnDone=False
    while blnDone==False: #loop to stay in program until valid data is entered
        try:
            intWage=int(raw_input("Enter employee's wage: "))
            if intWage >= 6.0 and intWage <=20.0:
                lstWage.append(float(strNum)) #convert to float
                blnDone=True
            else:
                print "Wage must be between $6.00 and $20.00"
        except(ValueError): #if you have Value Error exception.  Explicit on error type
            print "Invalid entry"


def getHours():
    lstHours=[]
    blnDone=False
    while blnDone==False: #loop to stay in program until valid data is entered
        try:
            intHrs=int(raw_input("Enter number of hours worked: "))
            if intHrs >= 1.0 and intHrs <=60.0:
                blnDone=True
            else:
                print "Hours worked must be 1 through 60."
        except(ValueError): #if you have Value Error exception.  Explicit on error type
            print "Invalid entry"

def getDone():
    strDone=""
    blnDone=False
    while blnDone==False:
        try:
            srtDone=raw_input("Type \"DONE\" if you are finished entering names, otherwise press enter: ")
            if strDone.lower()=="done":
                blnDone=True
            else:
                print "Type another empolyee name"
        except(ValueError): #if you have Value Error exception.  Explicit on error type
            print "Invalid entry"


##### Mainline ########

strUserName=getName()
strWage=getWage()
strHours=getHours()
srtDone1=getDone()
0
задан user1298258 28 March 2012 в 13:27
поделиться