"无法将字符串转换为浮点值。"我的代码怎么办?

时间:2016-02-26 00:21:16

标签: python string point

我对编码很陌生,我不知道Python中的一切是如何运作的。我知道这段代码不会写,但我需要知道如何做这些事情。

    #Write a program that prompts the user to enter six points and use Cramer's rule to solve 2x2 linear equations.
    a, b, c, d, e, f = float(input("Enter a, b, c, d, e, f: "))

    if a*d-b*c==0:
        print("The equation has no solution.")
    else:
        x= ((e*d-b*f) / (a*d-b*c))
        y= ((a*f-e*c) / (a*d-b*c))
        print("X is: " , x , "and Y is: " , y) 

2 个答案:

答案 0 :(得分:2)

您正在将整个字符串转换为浮点数而不是每个单独的数字。也就是说,您将“1 3 5 2 3 6”转换为不起作用的浮点数。我想你的意思是:

a, b, c, d, e, f = map(float, input("Enter a, b, c, d, e, f: ").split())

使用.split()表示它会将字符串转换为数字字符串列表。 map(float, ...)将返回转换为float的每个数字字符串的列表。

答案 1 :(得分:1)

收集输入的方法不正确,x和y在打印时需要转换为字符串。

a = float(input("Enter a: "))
b = float(input("Enter b: "))
c = float(input("Enter c: "))
d = float(input("Enter d: "))
e = float(input("Enter e: "))
f = float(input("Enter f: "))

if a*d-b*c==0:
    print("The equation has no solution.")
else:
    x= ((e*d-b*f) / (a*d-b*c))
    y= ((a*f-e*c) / (a*d-b*c))
    print("X is: " , str(x), "and Y is: ", str(y))