【问题标题】:Custom function: converting string inputs to float after the input自定义功能:输入后将字符串输入转换为浮点数
【发布时间】:2018-08-26 14:09:43
【问题描述】:

我正在尝试在给出输入后将字符串输入转换为浮点数。如果输入是字符串,则保留对输入执行某些操作的选项。我尝试了一些东西,但它们返回以下错误:

"TypeError: can't multiply sequence by non-int of type 'float' on line 8"

下面是有效的代码,但我想将输入保留为字符串并在给出输入后转换为浮点数:

def computepay(h,r):
    if h<=40:
        return h*r
    else:
        return h*r+((h-40)*b)
h = float(input("Enter Hours:"))
r = float(input("Enter Rate:"))
b = 0.5*r
p = computepay(h,r)
print(p)

这将如何正确完成?

谢谢!

【问题讨论】:

  • 将其保留为字符串,仅在需要时转换为浮点数?我不太确定您在这里问什么...您面临的确切问题是什么,因为我看不到该代码将如何产生该错误...。
  • 只是为了保持开放,将来我可能想看看如何将非数字作为输入识别为 - 或转换为浮点数;例如'hundred' 被识别为 '100' 并在后面的行中处理。例如,当我执行以下操作时会产生错误:输入行之后的 float(h) & float(r)。

标签: python string python-3.x input


【解决方案1】:

您可以转换为 float 作为单独的步骤并创建新变量来保存您的 float 值。这会将您的原始输入保留为字符串。

h = input("Enter Hours:")
r = input("Enter Rate:")

h_float, r_float = map(float, (h, r))

b = 0.5 * r_float
p = computepay(h_float, r_float)

或者,您可以使用更详细的语法:

h_float = float(h)
r_float = float(r)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多