python3提示:ValueError: could not convert string to float: '2017-10-27,五'
1个回答
展开全部
12
>>> print '{0:4.2f}'.format(0.25)0.25
首先,可以发现,最后一句话是正确的,在输入值为float的情况下。那么可以排除,问题处在第一二句。。
weight=float(raw_input())high= float(raw_input())
你应该这样:
1234567891011121314151617181920212223242526272829303132333435
>>> try: weight=float(raw_input()) high= float(raw_input()) BMI=weight/high**2 print '{0:4.2f}'.format(BMI)except ValueError, e: print "您输入的数据不是有效数字,请重新输入" 98.68686.250.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循环 直到用户输入正确数据
123456789101112131415161718
>>> 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: 98please input number-B: 6 9您输入的数据不是有效数字,请重新输入, E:invalid literal for float(): 6 9please input number-A: 89.89please input number-B: 62.8result :0.02>>>
楼主,不妨... 呵呵。我有一年多python工作经验,你这点问题,真是。。。不会找Bug
交互又那么差劲
追问
- -。只学了一节python, 真的不会啊。交互差劲吗。。。不好意思了。。。
追答
我明明给你解决问题所在了,你还纠结着。。。好吧,自己慢慢踩坑吧
再有。。。
1
weight=float(raw_input("please input number-A: ").strip())
这样写是不对的,你应该分开,保证随时可以获取到源数据。。
12345
weight_in = raw_input("please input number-A: ")try: weight = float(weight_in.strip())except ValueError, e: print "您输入的数据【%s】非法,请重新输入有效数字。E:%s" % (weight_in, e)
这样,你能更快速找到问题所以,有时候你看不到空格,所以要用【】或者别的某种符号,使空格看起来更明显一些。。
>>> print '{0:4.2f}'.format(0.25)0.25
首先,可以发现,最后一句话是正确的,在输入值为float的情况下。那么可以排除,问题处在第一二句。。
weight=float(raw_input())high= float(raw_input())
你应该这样:
1234567891011121314151617181920212223242526272829303132333435
>>> try: weight=float(raw_input()) high= float(raw_input()) BMI=weight/high**2 print '{0:4.2f}'.format(BMI)except ValueError, e: print "您输入的数据不是有效数字,请重新输入" 98.68686.250.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循环 直到用户输入正确数据
123456789101112131415161718
>>> 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: 98please input number-B: 6 9您输入的数据不是有效数字,请重新输入, E:invalid literal for float(): 6 9please input number-A: 89.89please input number-B: 62.8result :0.02>>>
楼主,不妨... 呵呵。我有一年多python工作经验,你这点问题,真是。。。不会找Bug
交互又那么差劲
追问
- -。只学了一节python, 真的不会啊。交互差劲吗。。。不好意思了。。。
追答
我明明给你解决问题所在了,你还纠结着。。。好吧,自己慢慢踩坑吧
再有。。。
1
weight=float(raw_input("please input number-A: ").strip())
这样写是不对的,你应该分开,保证随时可以获取到源数据。。
12345
weight_in = raw_input("please input number-A: ")try: weight = float(weight_in.strip())except ValueError, e: print "您输入的数据【%s】非法,请重新输入有效数字。E:%s" % (weight_in, e)
这样,你能更快速找到问题所以,有时候你看不到空格,所以要用【】或者别的某种符号,使空格看起来更明显一些。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询