2013-09-23 4 views
2

Я набираю программу для своего класса, проблема сформулирована очень странно, но я поставил свой код для проблемы, я объявляю числа как float правильно? Простой вопрос, но я держу свой разум открытым для других способов делать что-то.Python float numbers и правильное использование

print " This program will calculate the unit price (price per oz) of store items," 
print " you will input the weight in lbs and oz, the name and cost." 
item_name = (input("Please enter the name of the item. ")) 
item_lb_price = float(input("Please enter the price per pound of your item ")) 
item_lbs = float(input("please enter the pounds of your item. ")) 
item_oz = float(input("plese enter the ounces of your item. ")) 
unit_price = item_lb_price/16 
total_price = item_lb_price * (item_lbs + item_oz/16) 
print "the total price per oz is", unit_price 
print "the total price for", item_name, "is a total of", total_price 
+0

вы используете Python 2 или 3? –

+1

Наверное, нужно «decimal.Decimal' вместо« float »при работе с деньгами. –

+1

В python мы не объявляем переменные. Там просто не так. То, что вы делаете, - это привязка имен к значениям. –

ответ

1

Ваших поплавки хорошо.

Вам нужно использовать raw_input, хотя для возврата строки.

input("Enter a number") равнозначно eval(raw_input("Enter a number")). В настоящее время код пытается оценить ввод как код (выполняется как выражение python).

15:10:21 ~$ python so18967752.py 
This program will calculate the unit price (price per oz) of store items, 
you will input the weight in lbs and oz, the name and cost. 
Please enter the name of the item. Apple 
Traceback (most recent call last): 
    File "so18967752.py", line 6, in <module> 
    item_name = (input("Please enter the name of the item. ")) 
    File "<string>", line 1, in <module> 
NameError: name 'Apple' is not defined 

Другие комментарии:

  1. Для вашего многострочного баннера в верхней части, объявить строку как многострочные строки и печатать это.
  2. Проверьте, чтобы диапазоны имели смысл для входов (проверка). Конечно, если это для класса вы, возможно, не достигли этой точки (Seen, если/иначе?)
  3. Четко с константами, чтобы сделать их поплавки, чтобы убедиться, что он не по умолчанию целочисленного делению

Слегка очищены вид:

banner = ''' 
This program will calculate the unit price (price per oz) of store items. 
You will input the weight in lbs and oz, the name and cost. 
''' 

print banner 

item_name = raw_input("Please enter the name of the item. ") 

item_lb_price = float(raw_input("Please enter the price per pound of your item.")) 
item_lbs = float(raw_input("Please enter the pounds of your item.")) 
item_oz = float(raw_input("plese enter the ounces of your item.")) 

unit_price = item_lb_price/16.0 
total_price = item_lb_price * (item_lbs + (item_oz/16.0)) 

print "The total price per oz is", unit_price 
print "The total price for", item_name, "is a total of", total_price 
+0

С Python 2, который по-прежнему является общим сценарием. –

+0

очень красиво, нет, мы еще не ударили еще/если еще в классе, но этот очищенный код действительно очищает мои вопросы – JuanB457

0

отдела в питона по умолчанию, используя целые числа, так что если вы хотите, результат с плавающей точкой, вы должны разделить на 16,0

unit_price = item_lb_price/16.0 
+0

Он использует функцию float() на всех своих входах, поэтому он избыточен. –

+0

А, это правильно. Но не больно быть явным. –

1

если питон 2 вы должны использовать raw_input вместо ввода. , если это python 3, вы должны вставлять значения, которые вы хотите распечатать в круглых скобках.

Да, вы используете функцию float правильно, но не проверяете правильность ввода. он несет ответственность и даже может ошибаться.

кроме программы не подходит для python 2 из-за ввода() и не подходит для python 3 из-за использования инструкции печати.

И вы должны разделите поплавок: 16,0 вместо 16.

+1

или '16.', который тоже работает – Paco

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