小能豆

将原始输入变量除以数字时出现 Python TypeError

py

我想将输入的磅重量转换为千克,但出现以下错误......

TypeError:不支持/的操作数类型:“unicode”和“float”

我的代码:

lbweight = raw_input("Current Weight (lb): ") 

kgweight = lbweight/2.20462

请有人帮忙!


阅读 46

收藏
2024-11-21

共1个答案

小能豆

您收到的错误表明 raw_input() 返回的值是一个字符串(在 Python 2 中是 Unicode),而不能直接与浮点数进行数学运算。您需要将输入值转换为数值类型(例如 float)以执行算术操作。

以下是修正后的代码:

lbweight = raw_input("Current Weight (lb): ")  # 获取输入

# 将输入转换为浮点数
try:
    lbweight = float(lbweight)  # 转换字符串为浮点数
    kgweight = lbweight / 2.20462  # 计算千克
    print("Weight in kilograms: {:.2f} kg".format(kgweight))  # 格式化输出
except ValueError:
    print("Invalid input. Please enter a numeric value.")

修正点

  1. 类型转换
    使用 float(lbweight) 将输入字符串转换为浮点数,以便可以执行数学运算。

  2. 错误处理
    添加了 try-except 块,以捕获非数字输入(例如用户意外输入了字母或特殊字符)。

  3. 格式化输出
    使用 "{:.2f}".format() 格式化输出到两位小数,更清晰。

示例运行

正确输入:

Current Weight (lb): 150
Weight in kilograms: 68.04 kg

错误输入:

Current Weight (lb): abc
Invalid input. Please enter a numeric value.

这将确保您的代码更健壮并能正确处理用户输入!

2024-11-21