【问题标题】:Currency Converter - can't multiply sequence by non-int of type 'float' error货币转换器 - 不能将序列乘以“浮点”类型的非整数错误
【发布时间】:2016-01-30 23:46:45
【问题描述】:

我对 Python 和一般编码比较陌生,最近的任务是用 Python 设计货币转换器。我几乎完成了代码,但在最后一行出现了一个问题。

currenctcurrency = input ("Select a starting currency: ")
print ('You selected %s' %currentcurrency)

value = input ("Input your current value: ")

new currency = input ("Select a new currency: ") 
if currentcurrency == 'Pound' and newcurrency == 'Pound':
    convertor = 1

上述代码部分针对四种支持的货币(英镑、欧元、美元和日元)的每种组合重复。

rint ("Do you want to convert", (value), (currentcurrency), "to", (newcurrency), "?")
answer = input ("Yes/No: ") 
if answer == 'No':
    quit(1) 
if answer == 'Yes':
    result = (convertor) * (value)
    print (result) 

当我运行代码时,输​​入运行成功,但是当它尝试将两个变量相乘时,我得到一个错误,内容如下: TypeError: 不能将序列乘以“浮点”类型的非整数

正如我之前所说,我是 Python 新手,并没有正确理解我需要做些什么来解决这个问题。如果有人能为我的问题提供一个简单/解释的答案,我将不胜感激。

感谢大家的阅读,祝你有美好的一天!

【问题讨论】:

  • value 是一个字符串,请确保先将其转换为浮点数或整数。

标签: python


【解决方案1】:

只需更改这一行:

value = input ("Input your current value: ")

到这里:

value = float(input("Input your current value: "))

您收到错误的原因是input 函数返回一个字符串。您可以将字符串(或任何序列)与整数相乘,例如 "foo" * 3 的计算结果为 "foofoofoo"。但这显然不适用于浮点数,也不是您想要的。相反,您希望将字符串转换为数字,然后将其与您的 convertor 值相乘。

【讨论】:

    【解决方案2】:

    输入返回一个字符串(一个字符序列)。您需要将字符串解析为数值

    你可能想试试:

    value = float(input("Input your current value: "))
    

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 2011-04-06
      • 2012-09-17
      • 2018-12-19
      • 1970-01-01
      • 2017-09-11
      • 2013-09-11
      相关资源
      最近更新 更多