繁体   English   中英

为什么我不能减去这两个值?

[英]Why can't I subtract these two values?

first = ("Enter a 3 digit number: ")
second = ("Enter a 3 digit number: ")
first_letter = first[0]
first_letter2 = second[0]
second_letter = first[1]
second_letter2 = second[1]
third_letter = first[2]
third_letter2 = second[2]
subtracting1 = abs(float(first_letter)) - abs(float(first_letter2))
subtracting2 = abs(float(second_letter) - float(second_letter2))
subtracting3 = abs(float(third_letter) - float(third_letter2))
special_difference = subtracting1 + subtracting2 + subtracting3
print("The special distance between", first,"and", second, "is", special_difference)

你好呀,

我正在尝试创建一个程序,该程序计算两个数字中相应三位数字之间的绝对差之和之间的差。 例如,如果用户输入 123 和 456,则特殊距离通过以下方式计算:

123(1)的第一位和456(4)的第一位的绝对差是3。123的第二位(2)和456的第二位(5)的绝对差是3。绝对123的第三位(3)和456的第三位(6)的差是3。特殊差是3 + 3 + 3 = 9。

Idle 表示subtracting_1 位有问题。 它说它不能转换为浮点数。 我检查了代码,我看不出有什么问题?

您应该将前两行更改为

first = input("Enter a 3 digit number: ")
second = input("Enter a 3 digit number: ")

以便程序实际接收来自用户的输入。 否则first将是字符串“输入一个 3 位数字:”而不是一个 3 位数字的字符串。

你应该改变这一行:

subtracting1 = abs(float(first_letter)) - abs(float(first_letter2))

对于这条线

subtracting1 = abs(float(first_letter) - float(first_letter2))

这是我看到的唯一区别,还要确保将数字设置为数字而不是字符串

    first = input("Enter a 3 digit number: ")
    second = input("Enter a 3 digit number: ")
    first_letter = first[0]
    first_letter2 = second[0]
    second_letter = first[1]
    second_letter2 = second[1]
    third_letter = first[2]
    third_letter2 = second[2]
    subtracting1 = abs(float(first_letter) - float(first_letter2))
    subtracting2 = abs(float(second_letter) - float(second_letter2))
    subtracting3 = abs(float(third_letter) - float(third_letter2))
    
    special_difference = subtracting1 + subtracting2 + subtracting3
    print("The special distance between", first,"and", second, "is", special_difference)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM