我正在写一个磅到美元的转换器程序。我遇到了一些问题乘以这两个数字。
pounds = input('Number of Pounds: ')
convert = pounds * .56
print('Your amount of British pounds in US dollars is: $', convert)
有谁能告诉我纠正这个程序的代码?
答案 0 :(得分:10)
在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
答案 1 :(得分:1)
def main():
pounds = float(input('Number of Pounds: '))
convert = pounds * .56
print('Your amount of British pounds in US dollars is: $', convert)
main()
如果您正在使用输入,则表示您正在输入字符串。您想为此问题输入浮点数。