新手的python小程序,老是出现ValueError: could not convert string to float: 求教了,大婶们

发布网友

我来回答

3个回答

热心网友

>>> print '{0:4.2f}'.format(0.25)
0.25

首先,可以发现,最后一句话是正确的,在输入值为float的情况下。那么可以排除,问题处在第一二句。。

weight=float(raw_input())
high= float(raw_input())


你应该这样:

>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


98.68
686.25
0.00
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"



您输入的数据不是有效数字,请重新输入
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


+p5
您输入的数据不是有效数字,请重新输入
>>>

当然,你可以把try except分开,加一个while循环 直到用户输入正确数据

>>> while True:
try:
weight=float(raw_input("please input number-A: ").strip())
high= float(raw_input("please input number-B: ").strip())
BMI=weight/high**2
print 'result :{0:4.2f}'.format(BMI)
break
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入, E:%s" % e


please input number-A: 98
please input number-B: 6 9
您输入的数据不是有效数字,请重新输入, E:invalid literal for float(): 6 9
please input number-A: .
please input number-B: 62.8
result :0.02
>>>

楼主,不妨... 呵呵。我有一年多python工作经验,你这点问题,真是。。。不会找Bug

交互又那么差劲 

追问- -。只学了一节python, 真的不会啊。交互差劲吗。。。不好意思了。。。

追答

我明明给你解决问题所在了,你还纠结着。。。好吧,自己慢慢踩坑吧

再有。。。

weight=float(raw_input("please input number-A: ").strip())

这样写是不对的,你应该分开,保证随时可以获取到源数据。。

weight_in = raw_input("please input number-A: ")
try:
    weight = float(weight_in.strip())
except ValueError, e:
    print "您输入的数据【%s】非法,请重新输入有效数字。E:%s" % (weight_in, e)

这样,你能更快速找到问题所以,有时候你看不到空格,所以要用【】或者别的某种符号,使空格看起来更明显一些。。

热心网友



我是用的是python2.7,是正常的。

热心网友

你要输入数字,你输入字符串当然报错了追问我还没输入呢。什么意思啊?

追答输入数字后再回车

热心网友

>>> print '{0:4.2f}'.format(0.25)
0.25

首先,可以发现,最后一句话是正确的,在输入值为float的情况下。那么可以排除,问题处在第一二句。。

weight=float(raw_input())
high= float(raw_input())


你应该这样:

>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


98.68
686.25
0.00
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"



您输入的数据不是有效数字,请重新输入
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


+p5
您输入的数据不是有效数字,请重新输入
>>>

当然,你可以把try except分开,加一个while循环 直到用户输入正确数据

>>> while True:
try:
weight=float(raw_input("please input number-A: ").strip())
high= float(raw_input("please input number-B: ").strip())
BMI=weight/high**2
print 'result :{0:4.2f}'.format(BMI)
break
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入, E:%s" % e


please input number-A: 98
please input number-B: 6 9
您输入的数据不是有效数字,请重新输入, E:invalid literal for float(): 6 9
please input number-A: .
please input number-B: 62.8
result :0.02
>>>

楼主,不妨... 呵呵。我有一年多python工作经验,你这点问题,真是。。。不会找Bug

交互又那么差劲 

追问- -。只学了一节python, 真的不会啊。交互差劲吗。。。不好意思了。。。

追答

我明明给你解决问题所在了,你还纠结着。。。好吧,自己慢慢踩坑吧

再有。。。

weight=float(raw_input("please input number-A: ").strip())

这样写是不对的,你应该分开,保证随时可以获取到源数据。。

weight_in = raw_input("please input number-A: ")
try:
    weight = float(weight_in.strip())
except ValueError, e:
    print "您输入的数据【%s】非法,请重新输入有效数字。E:%s" % (weight_in, e)

这样,你能更快速找到问题所以,有时候你看不到空格,所以要用【】或者别的某种符号,使空格看起来更明显一些。。

热心网友



我是用的是python2.7,是正常的。

热心网友

你要输入数字,你输入字符串当然报错了追问我还没输入呢。什么意思啊?

追答输入数字后再回车

热心网友

>>> print '{0:4.2f}'.format(0.25)
0.25

首先,可以发现,最后一句话是正确的,在输入值为float的情况下。那么可以排除,问题处在第一二句。。

weight=float(raw_input())
high= float(raw_input())


你应该这样:

>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


98.68
686.25
0.00
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"



您输入的数据不是有效数字,请重新输入
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


+p5
您输入的数据不是有效数字,请重新输入
>>>

当然,你可以把try except分开,加一个while循环 直到用户输入正确数据

>>> while True:
try:
weight=float(raw_input("please input number-A: ").strip())
high= float(raw_input("please input number-B: ").strip())
BMI=weight/high**2
print 'result :{0:4.2f}'.format(BMI)
break
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入, E:%s" % e


please input number-A: 98
please input number-B: 6 9
您输入的数据不是有效数字,请重新输入, E:invalid literal for float(): 6 9
please input number-A: .
please input number-B: 62.8
result :0.02
>>>

楼主,不妨... 呵呵。我有一年多python工作经验,你这点问题,真是。。。不会找Bug

交互又那么差劲 

追问- -。只学了一节python, 真的不会啊。交互差劲吗。。。不好意思了。。。

追答

我明明给你解决问题所在了,你还纠结着。。。好吧,自己慢慢踩坑吧

再有。。。

weight=float(raw_input("please input number-A: ").strip())

这样写是不对的,你应该分开,保证随时可以获取到源数据。。

weight_in = raw_input("please input number-A: ")
try:
    weight = float(weight_in.strip())
except ValueError, e:
    print "您输入的数据【%s】非法,请重新输入有效数字。E:%s" % (weight_in, e)

这样,你能更快速找到问题所以,有时候你看不到空格,所以要用【】或者别的某种符号,使空格看起来更明显一些。。

热心网友



我是用的是python2.7,是正常的。

热心网友

你要输入数字,你输入字符串当然报错了追问我还没输入呢。什么意思啊?

追答输入数字后再回车

热心网友

>>> print '{0:4.2f}'.format(0.25)
0.25

首先,可以发现,最后一句话是正确的,在输入值为float的情况下。那么可以排除,问题处在第一二句。。

weight=float(raw_input())
high= float(raw_input())


你应该这样:

>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


98.68
686.25
0.00
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"



您输入的数据不是有效数字,请重新输入
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


+p5
您输入的数据不是有效数字,请重新输入
>>>

当然,你可以把try except分开,加一个while循环 直到用户输入正确数据

>>> while True:
try:
weight=float(raw_input("please input number-A: ").strip())
high= float(raw_input("please input number-B: ").strip())
BMI=weight/high**2
print 'result :{0:4.2f}'.format(BMI)
break
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入, E:%s" % e


please input number-A: 98
please input number-B: 6 9
您输入的数据不是有效数字,请重新输入, E:invalid literal for float(): 6 9
please input number-A: .
please input number-B: 62.8
result :0.02
>>>

楼主,不妨... 呵呵。我有一年多python工作经验,你这点问题,真是。。。不会找Bug

交互又那么差劲 

追问- -。只学了一节python, 真的不会啊。交互差劲吗。。。不好意思了。。。

追答

我明明给你解决问题所在了,你还纠结着。。。好吧,自己慢慢踩坑吧

再有。。。

weight=float(raw_input("please input number-A: ").strip())

这样写是不对的,你应该分开,保证随时可以获取到源数据。。

weight_in = raw_input("please input number-A: ")
try:
    weight = float(weight_in.strip())
except ValueError, e:
    print "您输入的数据【%s】非法,请重新输入有效数字。E:%s" % (weight_in, e)

这样,你能更快速找到问题所以,有时候你看不到空格,所以要用【】或者别的某种符号,使空格看起来更明显一些。。

热心网友



我是用的是python2.7,是正常的。

热心网友

你要输入数字,你输入字符串当然报错了追问我还没输入呢。什么意思啊?

追答输入数字后再回车

热心网友

>>> print '{0:4.2f}'.format(0.25)
0.25

首先,可以发现,最后一句话是正确的,在输入值为float的情况下。那么可以排除,问题处在第一二句。。

weight=float(raw_input())
high= float(raw_input())


你应该这样:

>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


98.68
686.25
0.00
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"



您输入的数据不是有效数字,请重新输入
>>> try:
weight=float(raw_input())
high= float(raw_input())
BMI=weight/high**2
print '{0:4.2f}'.format(BMI)
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入"


+p5
您输入的数据不是有效数字,请重新输入
>>>

当然,你可以把try except分开,加一个while循环 直到用户输入正确数据

>>> while True:
try:
weight=float(raw_input("please input number-A: ").strip())
high= float(raw_input("please input number-B: ").strip())
BMI=weight/high**2
print 'result :{0:4.2f}'.format(BMI)
break
except ValueError, e:
print "您输入的数据不是有效数字,请重新输入, E:%s" % e


please input number-A: 98
please input number-B: 6 9
您输入的数据不是有效数字,请重新输入, E:invalid literal for float(): 6 9
please input number-A: .
please input number-B: 62.8
result :0.02
>>>

楼主,不妨... 呵呵。我有一年多python工作经验,你这点问题,真是。。。不会找Bug

交互又那么差劲 

追问- -。只学了一节python, 真的不会啊。交互差劲吗。。。不好意思了。。。

追答

我明明给你解决问题所在了,你还纠结着。。。好吧,自己慢慢踩坑吧

再有。。。

weight=float(raw_input("please input number-A: ").strip())

这样写是不对的,你应该分开,保证随时可以获取到源数据。。

weight_in = raw_input("please input number-A: ")
try:
    weight = float(weight_in.strip())
except ValueError, e:
    print "您输入的数据【%s】非法,请重新输入有效数字。E:%s" % (weight_in, e)

这样,你能更快速找到问题所以,有时候你看不到空格,所以要用【】或者别的某种符号,使空格看起来更明显一些。。

热心网友



我是用的是python2.7,是正常的。

热心网友

你要输入数字,你输入字符串当然报错了追问我还没输入呢。什么意思啊?

追答输入数字后再回车

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com