This function will take a string as input. The string has the following properties:
- Includes characters 0-9
- May include period to denote cents. (If not included assume 0 cents.)
- May include $ sign.
- May include commas as digit separators.
Your function will convert the string into a floating point number. You may not use any built in commands like int or float. You must solve this problem by analyzing the characters in the string of text.
If the input is invalid, return -1 as the function's result.
If I input the following:
100.00
200
98.78
$1,009.78
Goat
exit
This is what the output looks like:
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):
My code is:
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")
The only thing wrong is the function definition. My code works up until I input '$1009.78'. I am specifically asked to only rewrite the function definition and not change anything else.