2015-09-14 3 views
-1

Мне нужно написать программу для моего класса Computer Logic, и я не могу понять, почему это не будет работать. Ошибка, которую я продолжаю получать, - IndentationError: expected an indented block (<string>, line 3) Может ли кто-нибудь указать мне в правильном направлении? Если у вас есть какие-либо ошибки, сообщите мне. Этот код должен работать правильно. Благодарю.Может ли кто-то сканировать этот код Python, который я написал, и сообщить мне, что я сделал неправильно?

while True: 

cname = 'My Company' 
drate = .17 
maxhrs = 40 
pdate = "9/1/2015" 
orate = 1.5 
lc = 'Y' 
while(lc == 'Y'): 
ename = raw_input("Enter employee's name.") 
dcode = raw_input("Enter department code.(1 - Shipping 2 - Mngmt.)") 
hworked = float(raw_input("Enter total hours worked.")) 
prate = float(raw_input("Enter your pay rate.")) 
inscost = float(raw_input("Enter the cost of insurance.")) 
city = float(raw_input("Enter your city code.(1 - Sumiton 2 - Hamilton)")) 
st = raw_input("Enter your state") 
sex = raw_input("Enter your sex.(M - Male F - Female)") 
yrsemp = raw_input("Enter total years employed.") 

print("Welcome to our company: ", cname) 
print("Pay period date: ", pdate) 
    if(sex == 'M'): 
     sexword = 'Male' 
     else: 
     sexword = 'Female' 
print("Employee name: ", ename, "Sex: ", sexword) 
    if(city == '1'): 
     cityn = 'Sumiton' 
     else: 
     cityn = 'Hamilton' 
print("City: ", cityn, "State: ", state) 
    if(dcode == '1'): 
     dname = 'Shipping' 
     else: 
     dname = 'Management' 
print("Department name: ", dname) 
rpay = maxhrs * prate 
print("Regular pay: ", rpay) 
opay = [(maxhrs - hworked) * orate] * prate 
print("Overtime pay: ", opay) 
gross = rpay + opay 
print("Gross before deduction: ", gross) 
damt = drate * gross 
print("Deduction amount: ", damt "Insurance cost: ", inscost) 
npay = gross - (damt + icost) 
print("Net pay: ", npay) 
new = raw_input("Would you like to start over with a new person? yes/no") 
    if(new = 'yes') 

restart = int(input("Press 1 to try again, 0 to exit. ")) 
    if(restart == '1'): 
     continue 
     elif(restart == '0'): 
     break  
     else: 
     print("Invalid input. Please enter 1 to restart or 0 to exit.") 

`

+2

Вы не отступали. , , на линии 3. Не знаете, что такое путаница. Код под вашим первым 'While' должен быть отступом. – CollinD

+0

и ваш второй пока –

ответ

1

Ваш код отсутствует отступ после первого времени. Вам нужно отступывать утверждения, которые будут выполняться в этом цикле, а также сделать то же самое со вторым, пока вы находитесь в строке 9.

+1

Кроме того, do * not * indent a if statement - вы отделили каждый из них, и это также вызовет ошибку. Вы * делаете * indent выражения внутри if, но не самого if. – Prune

+0

Спасибо. Теперь я получаю это: 'не может умножить последовательность на non-int типа 'float'' – Blirno

0

В Python после того, как двоеточие должно отступать (рекомендуется 4 пробела). Таким образом, отступ должен быть таким:

while True: 
    cname = 'My Company' 
    drate = .17 
    maxhrs = 40 
    pdate = "9/1/2015" 
    orate = 1.5 
    lc = 'Y' 

while(lc == 'Y'): 
    ename = raw_input("Enter employee's name.") 
    dcode = raw_input("Enter department code.(1 - Shipping 2 - Mngmt.)") 
    hworked = float(raw_input("Enter total hours worked.")) 
    prate = float(raw_input("Enter your pay rate.")) 
    inscost = float(raw_input("Enter the cost of insurance.")) 
    city = float(raw_input("Enter your city code.(1 - Sumiton 2 - Hamilton)")) 
    st = raw_input("Enter your state") 
    sex = raw_input("Enter your sex.(M - Male F - Female)") 
    yrsemp = raw_input("Enter total years employed.") 

print("Welcome to our company: ", cname) 
print("Pay period date: ", pdate) 

if(sex == 'M'): 
    sexword = 'Male' 
else: 
    sexword = 'Female' 
print("Employee name: ", ename, "Sex: ", sexword) 

if(city == '1'): 
    cityn = 'Sumiton' 
else: 
    cityn = 'Hamilton' 
print("City: ", cityn, "State: ", state) 

if(dcode == '1'): 
    dname = 'Shipping' 
else: 
    dname = 'Management' 
print("Department name: ", dname) 

rpay = maxhrs * prate 
print("Regular pay: ", rpay) 
opay = [(maxhrs - hworked) * orate] * prate 
print("Overtime pay: ", opay) 
gross = rpay + opay 
print("Gross before deduction: ", gross) 
damt = drate * gross 
print("Deduction amount: ", damt "Insurance cost: ", inscost) 
npay = gross - (damt + icost) 
print("Net pay: ", npay) 
new = raw_input("Would you like to start over with a new person? yes/no") 
if(new = 'yes') 

restart = int(input("Press 1 to try again, 0 to exit. ")) 
if(restart == '1'): 
    continue 
elif(restart == '0'): 
    break 
else: 
    print("Invalid input. Please enter 1 to restart or 0 to exit.") 

(кстати, ваш код имеет много проблем ... Я даже не могу понять, что это Python 3 или Python 2 ...)

+0

Да, мой профессор очень смущен. – Blirno

+0

И теперь вы должны принять ответ, который вы предпочитаете. –

Смежные вопросы