Эта функция будет принимать строку в качестве ввода.Строка имеет следующие свойства:
- Включает символы 0-9
- Может включать точку для обозначения центов.(Если не включено, предположите 0 центов.)
- Может включать знак $.
- Может включать запятые в качестве разделителей цифр.
Ваша функция преобразует строку вчисло с плавающей запятой.Вы не можете использовать любые встроенные команды, такие как int или float.Вы должны решить эту проблему, проанализировав символы в текстовой строке.
Если ввод недействителен, вернуть -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):
Мой код:
def price_to_int(text):
res = 0
valid = "$,.1234567890"
for l in text:
if l in valid:
res = float(text)
else:
return -1
return res
#---------You may not make any changes below this line-----------
print("Determine Price with Tax.")
print("Enter 'exit' at any time to quit.")
word = input("Enter Amount ($X,XXX.XX):\n")
while word.lower() != "exit":
d = price_to_int(word)
tax = 0.06
print("Amount:",round(d,2))
print("Tax:",round(d*tax,2))
print("Price w/ Tax:",round(d+d*tax,2))
word = input("Enter Amount ($X,XXX.XX):\n")
Единственное неправильное определение функции.Мой код работает до тех пор, пока я не введу «1009,78 $».Меня специально просят только переписать определение функции и больше ничего не менять.