2013-12-17 4 views
-3
number1 = float 
number2 = float 


number1 = raw_input("Please input the first number: ") 
number2 = raw_input("Please input the second number: ") 


if number1 > number2: 
    print number1 + ' is bigger than ' + number2 

elif number2 < number1: 
    print number2 + ' is bigger than ' + number1 

else: 
    print 'You did not follow the instructions properly. Goodbye!' 


print "\n" 
raw_input("Please press enter to exit.") 
+2

С какими вкладами вы его протестировали? – inspectorG4dget

ответ

5

Этих линий:

number1 = float 
number2 = float 

не делают входы в поплавки. Вместо этого все, что они делают, назначают переменные встроенному float.

Это то, что вы должны делать:

number1 = float(raw_input("Please input the first number: ")) 
number2 = float(raw_input("Please input the second number: ")) 

Кроме того, внутри вашего если-заявления, вы не можете добавлять строки и плавает вместе (пытаясь сделать это поднимет TypeError). Существует два способа решить эту проблему. Первый с str.format:

print '{} is bigger than {}'.format(number1, number2) 

второй, чтобы отделить значения запятыми:

print number1, 'is bigger than', number2 

Наконец, ваша логика поодаль. Второй if-statement должен выглядеть следующим образом:

elif number1 < number2: 

В противном случае он делает то же самое, что и первый оператор if.


Ниже приводится исправленная версия вашего сценария:

number1 = float(raw_input("Please input the first number: ")) 
number2 = float(raw_input("Please input the second number: ")) 

if number1 > number2: 
    print '{} is bigger than {}'.format(number1, number2) 

elif number1 < number2: 
    print '{} is bigger than {}'.format(number2, number1) 

else: 
    print 'You did not follow the instructions properly. Goodbye!' 


print "\n" 
raw_input("Please press enter to exit.") 
2

Вы сравниваете строки, что означает, что они сравнивают лексически.

Cast возвращаемое значение raw_input плавать:

number1 = float(raw_input("Please input the first number: ")) 
number2 = float(raw_input("Please input the second number: ")) 

Линии:

number1 = float 
number2 = float 

просто хранить ссылки на float() конструктора. У Python нет объявлений типов, и эти строки не означают, что два имени должны содержать только значения с плавающей запятой.

Затем вам нужно преобразовать числа с плавающей точкой в ​​строки при печати; Вы можете использовать тот факт, что print принимает несколько значений, чтобы это было сделано для вас:

if number1 > number2: 
    print number1, 'is bigger than', number2 

elif number2 < number1: 
    print number2, 'is bigger than', number1 

В качестве альтернативы, вы можете хранить raw_input() результаты в виде строк и только переворачивать значения float() при сравнении:

number1 = raw_input("Please input the first number: ") 
number2 = raw_input("Please input the second number: ") 


if float(number1) > float(number2): 
    print number1 + ' is bigger than ' + number2 

elif float(number2) < float(number1): 
    print number2 + ' is bigger than ' + number1 
+0

Вам нужно будет явно сделать строки значений для добавления к другим строкам: 'str (number2) + 'больше, чем' ...' – jonrsharpe

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