Python ValueError:使用输入函数时无法将字符串转换为浮点值
我阅读了类似的错误线程,但找不到解决方案。在大多数其他线程中,似乎人们输入的数据不正确,但正如您所看到的,我输入的值具有正确的类型。我似乎找不到我还缺少什么。有什么想法吗Python ValueError:使用输入函数时无法将字符串转换为浮点值,python,python-3.x,Python,Python 3.x,我阅读了类似的错误线程,但找不到解决方案。在大多数其他线程中,似乎人们输入的数据不正确,但正如您所看到的,我输入的值具有正确的类型。我似乎找不到我还缺少什么。有什么想法吗 def main(): a, b, c, d, e, f = float(input("Enter a, b, c, d, e, f: ")) x = ((e * d) - (b * f))/ ( (a * d) - (b * c) ) y = ((a * f) - (e *
def main():
a, b, c, d, e, f = float(input("Enter a, b, c, d, e, f: "))
x = ((e * d) - (b * f))/ (
(a * d) - (b * c) )
y = ((a * f) - (e * c)) / (
(a * d) - (b * c) )
print("x is %f and y is %f" % (x,y))
if __name__ == "__main__":
main()
错误消息:
>>>Enter a, b, c, d, e, f: 9.0, 4.0, 3.0, -5.0, -6.0, -21.0
ValueError: could not convert string to float: '9.0, 4.0, 3.0, -5.0, -6.0, -21.0'
float()
函数尝试将整个字符串转换为单个浮点。从技术上讲,这将起作用:
a, b, c, d, e, f = [float(number) for number in input("Enter a, b, c, d, e, f: ").split(', ')]
但是请记住,如果它不,float()
函数尝试将整个字符串转换为单个float,则不会出现错误处理。从技术上讲,这将起作用:
a, b, c, d, e, f = [float(number) for number in input("Enter a, b, c, d, e, f: ").split(', ')]
但是请记住,如果它不,float()
函数尝试将整个字符串转换为单个float,则不会出现错误处理。从技术上讲,这将起作用:
a, b, c, d, e, f = [float(number) for number in input("Enter a, b, c, d, e, f: ").split(', ')]
但是请记住,如果它不,float()
函数尝试将整个字符串转换为单个float,则不会出现错误处理。从技术上讲,这将起作用:
a, b, c, d, e, f = [float(number) for number in input("Enter a, b, c, d, e, f: ").split(', ')]
但请记住,如果没有,则不会进行错误处理。问题是,一系列由逗号分隔的浮点值无法转换为单个的
浮点值
可以单独请求每个浮点,也可以将输入字符串拆分为逗号并循环转换
我建议单独询问每个浮动。编写一个函数input\u float()
,该函数接受用户的输入,尝试转换为float,并告诉用户是否有问题;它可以有一个循环,在用户成功输入浮点值之前一直循环
您可能希望让您的input\u float()
函数接受一个字符串作为提示显示,另一个字符串在出错时显示,以及一个函数来验证输入。因此,如果用户必须输入介于0和100之间的浮点值,则可以使用验证函数执行此检查
一旦编写了灵活的input\u float()
函数,您就可以在程序中反复使用它。问题在于,一系列由逗号分隔的浮点值无法转换为单个浮点值
可以单独请求每个浮点,也可以将输入字符串拆分为逗号并循环转换
我建议单独询问每个浮动。编写一个函数input\u float()
,该函数接受用户的输入,尝试转换为float,并告诉用户是否有问题;它可以有一个循环,在用户成功输入浮点值之前一直循环
您可能希望让您的input\u float()
函数接受一个字符串作为提示显示,另一个字符串在出错时显示,以及一个函数来验证输入。因此,如果用户必须输入介于0和100之间的浮点值,则可以使用验证函数执行此检查
一旦编写了灵活的input\u float()
函数,您就可以在程序中反复使用它。问题在于,一系列由逗号分隔的浮点值无法转换为单个浮点值
可以单独请求每个浮点,也可以将输入字符串拆分为逗号并循环转换
我建议单独询问每个浮动。编写一个函数input\u float()
,该函数接受用户的输入,尝试转换为float,并告诉用户是否有问题;它可以有一个循环,在用户成功输入浮点值之前一直循环
您可能希望让您的input\u float()
函数接受一个字符串作为提示显示,另一个字符串在出错时显示,以及一个函数来验证输入。因此,如果用户必须输入介于0和100之间的浮点值,则可以使用验证函数执行此检查
一旦编写了灵活的input\u float()
函数,您就可以在程序中反复使用它。问题在于,一系列由逗号分隔的浮点值无法转换为单个浮点值
可以单独请求每个浮点,也可以将输入字符串拆分为逗号并循环转换
我建议单独询问每个浮动。编写一个函数input\u float()
,该函数接受用户的输入,尝试转换为float,并告诉用户是否有问题;它可以有一个循环,在用户成功输入浮点值之前一直循环
您可能希望让您的input\u float()
函数接受一个字符串作为提示显示,另一个字符串在出错时显示,以及一个函数来验证输入。因此,如果用户必须输入介于0和100之间的浮点值,则可以使用验证函数执行此检查
一旦编写了灵活的input\u float()
函数,就可以在程序中反复使用它。如果确保始终包含小数点
from ast import literal_eval
a, b, c, d, e, f = literal_eval(input("Enter a, b, c, d, e, f: "))
如果缺少小数点,如果确保始终包含小数点,则相应的变量将是int而不是float
from ast import literal_eval
a, b, c, d, e, f = literal_eval(input("Enter a, b, c, d, e, f: "))
如果缺少小数点,如果确保始终包含小数点,则相应的变量将是int而不是float
from ast import literal_eval
a, b, c, d, e, f = literal_eval(input("Enter a, b, c, d, e, f: "))
如果缺少小数点,如果确保始终包含小数点,则相应的变量将是int而不是float
from ast import literal_eval
a, b, c, d, e, f = literal_eval(input("Enter a, b, c, d, e, f: "))
如果缺少小数点,则相应的变量将是int而不是floatI被教导使用eval()函数执行此类任务是错误的编码实践。文字评估不同吗?@user326803,是的,完全不同。literal\u eval仅适用于有效的文本。eval可以擦除硬盘和其他邪恶的东西我被教导使用eval()函数执行这样的任务是不好的编码实践。文字评估是否不同