在Python 3
input中将返回一个字符串.这基本上等同于Python 2中的raw_input.因此,您需要在执行任何计算之前将该字符串转换为数字.并准备好“输入错误”(即:非数字值).
此外,对于货币价值,使用浮动通常不是一个好主意.您应该使用decimal来避免舍入错误:
>>> 100*.56
56.00000000000001
>>> Decimal('100')*Decimal('.56')
Decimal('56.00')
所有这些导致了类似的事情:
import decimal
try:
pounds = decimal.Decimal(input('Number of Pounds: '))
convert = pounds * decimal.Decimal('.56')
print('Your amount of British pounds in US dollars is: $', convert)
except decimal.InvalidOperation:
print("Invalid input")
生产:
sh$python3 m.py
Number of Pounds: 100
Your amount of British pounds in US dollars is: $56.00
sh$python3 m.py
Number of Pounds: douze
Invalid input