2

我正在为我的班级输入一个程序,这个问题的措辞很奇怪,但是我已经为这个问题输入了我的代码,我是否正确地将数字声明为浮点数?简单的问题,但我对其他做事方式持开放态度。

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
4

3 回答 3

1

如果是 python 2,你应该使用 raw_input 而不是 input。如果它是 python 3,则应将要打印的值括在括号中。

是的,您正确使用了 float 函数,但没有验证输入是否正确。它是有责任的,甚至可能会抛出错误。

此外,由于 input(),该程序对于 python 2 不正确,并且由于使用 print 语句,因此对于 python 3 不正确。

你应该用一个浮点数来划分:16.0 而不是 16。

于 2013-09-23T20:06:10.747 回答
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. 检查以确保范围对输入有意义(验证)。当然,如果这是针对一门课,您可能还没有达到这一点(见 if/else?)
  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
于 2013-09-23T20:08:40.953 回答
0

python中的除法默认使用整数,所以如果你想要一个浮点结果,你应该除以16.0

unit_price = item_lb_price / 16.0
于 2013-09-23T20:04:00.390 回答