【发布时间】:2018-02-09 22:44:37
【问题描述】:
我有一个要求您输入金额的代码。用户可以输入 0-9 的数字、逗号“,”、小数点“.”和美元符号“$”。所以程序应该能够读取诸如“$4,599.80”之类的输入,并且知道它的意思是“4599.80”。程序还将确定您输入的金额的税。税为 6%,因此程序将接受您的输入并将其乘以 0.06 并输出该金额的税金。然后,程序应该输出您输入的金额的总成本加上税金。所以如果您输入“$100”,程序应该输出税是 6 美元,总金额是 106 美元。如果用户输入了除金额之外的其他内容,例如任何其他符号(除了我上面列出的符号)或单词,程序应该输出“-1”并说税将是“-0.06”,总数是“-1.06”。程序应该继续要求用户输入金额,直到用户输入“exit”。我的程序一直说输出是“-1”,即使您输入一个符合条件的号码。
这是一个输入:
100.00
200
98.78
$1,009.78
Goat
exit
输出应该是这样的
Determine Price with Tax.
Enter 'exit' at any time to quit.
Enter Amount ($X,XXX.XX):
Amount: 100.0
Tax: 6.0
Price w/ Tax: 106.0
Enter Amount ($X,XXX.XX):
Amount: 200
Tax: 12.0
Price w/ Tax: 212.0
Enter Amount ($X,XXX.XX):
Amount: 98.78
Tax: 5.93
Price w/ Tax: 104.71
Enter Amount ($X,XXX.XX):
Amount: 1009.78
Tax: 60.59
Price w/ Tax: 1070.37
Enter Amount ($X,XXX.XX):
Amount: -1
Tax: -0.06
Price w/ Tax: -1.06
Enter Amount ($X,XXX.XX):
这是我的输出
Determine Price with Tax.
Enter 'exit' at any time to quit.
Enter Amount ($X,XXX.XX):
Amount: -1
Tax: -0.06
Price w/ Tax: -1.06
Enter Amount ($X,XXX.XX):
Amount: -1
Tax: -0.06
Price w/ Tax: -1.06
Enter Amount ($X,XXX.XX):
Amount: -1
Tax: -0.06
Price w/ Tax: -1.06
Enter Amount ($X,XXX.XX):
Amount: -1
Tax: -0.06
Price w/ Tax: -1.06
Enter Amount ($X,XXX.XX):
Amount: -1
Tax: -0.06
Price w/ Tax: -1.06
Enter Amount ($X,XXX.XX):
这是我的代码
print("Determine Price with Tax.")
print("Enter 'exit' at any time to quit.")
word = input("Enter Amount ($X,XXX.XX):\n")
def price_to_float(word):
valid = "$,.1234567890"
if word in valid:
return float(word)
else:
return -1
while word.lower() != "exit":
d = price_to_float(word)
tax = 0.06
print("Amount:",round(d,2))
print("Tax:", (tax * d))
print("Price w/ Tax:",round(d+d*tax,2))
word = input("Enter Amount ($X,XXX.XX):\n")
我认为我的函数有问题,因此它可能无法正确地将字符串转换为浮点数。如有任何建议,我将不胜感激!
【问题讨论】:
-
if word in valid不会按照您想要的方式工作。您需要单独检查单词的每个字符。
标签: python python-3.x