2015-11-08 1 views
-4
strnumsold = str() 
numsold = int() 
Flag = False 
index = 0 
totprice = 0.0 
avgsold = 0.0 
aboveavg = 0 
belowavg = 0 
strnumcheck = str() 
numcheck = float() 


print("Welcome to the Home Sales Calculator!") 
print(" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _") 
strnumsold = input("\nHow many homes were sold in the past year? ") 
while Flag == False: 
    if strnumsold.isdigit(): 
     numsold = int(strnumsold) 
     Flag = True 
    else: 
     strnumsold = input("That is not a valid number! Try Again!") 
Flag = False 
tothomes = [] 
print("\nWhat did the home sell for? (#'s Only) ") 
print("**********************************************") 
for index in range(numsold): 
     tothomes.append(input("{}) $ ".format(index + 1))) 
     strnumcheck = tothomes[index] 
     if strnumcheck.isdigit(): 
      numcheck = float(strnumcheck) 
      Flag = True 
      tothomes[index] = numcheck 
     else: 
      tothomes[index] = input("That is not a valid number! Try Again! ") 
     index = index + 1 
     Flag = False 
tothomes.sort() 
print("**********************************************") 
for homes in reversed(tothomes): 
    print(" $", "%.2f"%homes) 
avgsold = sum(tothomes)/numsold 
print("\nThe Average Price of homes sold was: $", "%.2f"%avgsold) 
print("The Highest home sold was: ", "%.2f"%max(tothomes)) 
print("The Lowest home sold was: ", "%.2f"%min(tothomes)) 
aboveavg = [above for above in tothomes if above >avgsold] 
belowavg = [below for below in tothomes if below <avgsold] 
print("The number of homes sold ABOVE Average was: ", len(aboveavg)) 
print("The number of homes sold BELOW Average was: ", len(belowavg)) 

Это моя первая программа с указанием как списков, так и номеров.Подтверждение списков и их число

Я опубликовал, насколько я выше, и переписал это несколько раз/способами, пытаясь понять это правильно.

Мой валидационный номер работает, но после ввода снова после повтора «повторите попытку», он не будет полностью прокручивать цикл и менять строку в поплавок.

Он работает так, как предполагается, когда цифры введены правильно. Вот пример того, что происходит при некорректном вводе:

Добро пожаловать в Калькулятор продаж дома!


How many homes were sold in the past year? 3 

What did the home sell for? (#'s Only) 
********************************************** 
1) $ 25 
2) $ 36 
3) $ m 
That is not a valid number! Try Again! 24 
Traceback (most recent call last): 
    File "C:\Users\troythomas448\Desktop\ITCS1140\Assignments\Thomas, Troy Lab#8.3.py", line 37, in <module> 
    tothomes.sort() 
TypeError: unorderable types: str() < float() 
+0

Вопросы ищет отладки помощи (** «? Почему не этот код работает» **) должен включать в себя желаемое поведение, * конкретную проблему или ошибку * и * кратчайший необходимый код * для воспроизведения ** в самом вопросе **. Вопросы без ** ясного заявления о проблеме ** не полезны для других читателей. См. [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). – MattDMo

+0

В чем вопрос? если у вас проблемы с работой, вы должны быть более конкретными –

+0

Также обратите внимание, что Stack Overflow не является ни форумом, ни учебным пособием или службой написания кода. Это сайт вопросов и ответов, где * конкретные * вопросы программирования (как правило, но не всегда, включая некоторый код) получают * конкретные * ответы. Пожалуйста, примите [тур] и внимательно прочитайте [помощь], чтобы узнать больше о сайте, в том числе [что по теме] (http://stackoverflow.com/help/on-topic) и [что нет] (http://stackoverflow.com/help/dont-ask), как [задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и как различные грани сайта работа в целом. – MattDMo

ответ

0

Святая корова! Получил его, чтобы бежать, и это была самая маленькая вещь в мире!

В моем цикле For я добавил дополнительный цикл While Loop поверх моего оператора If.

Это все еще не сработало, и я понял в своем Else для моего утверждения If, мне пришлось переключить tothomes [index] на strnumcheck.

Я показал, что я изменил вниз ниже:

print("\nWhat did the home sell for? (#'s Only) ") 
print("**********************************************") 
for index in range(numsold): 
    tothomes.append(input("{}) $ ".format(index + 1))) 
    strnumcheck = tothomes[index] 
    while Flag == False:       <<<<<<<<<<<<<<<<<<<<<<! 
     if strnumcheck.isdigit(): 
      numcheck = float(strnumcheck) 
      Flag = True 
      tothomes[index] = numcheck 
     else: 
      strnumcheck = input     <<<<<<<<<<<<<<<<<<<<<<! 
("That is not a valid number! Try Again! ") 
    index = index + 1 
    Flag = False 
Смежные вопросы