尝试将字符串转换为浮点时的ValueError

问题描述:

我遇到了运行此程序的麻烦。
它告诉我,我有一个尝试将字符串转换为浮点时的ValueError

ValueError: could not convert string to float

的问题是,虽然,它只是跳过我输入的命令,并跳转到

print("Invalid Response") 

这个程序能正常工作在我的手机,但不是在我的Windows 10笔记本电脑。

任何帮助?尝试运行它,让我知道它是否适合你。

def calc():  #The function performing calculation. 
    if chars == "+": 
     result = num1 + num2 
     print (result) 
     return result 
    elif chars == "-": 
     result = num1 - num2 
     print(result) 
     return result 
    elif chars == "*": 
     result = num1 * num2 
     print(result) 
     return result 
    elif chars == "/": 
     result = float(num1)/float(num2) 
     print(result) 
     return result 
    else: 
     print("Invalid or unsupported operation") 

cont = "" 
def contin(): 
     result = calc() 
     print("Operate? y/n: ") 
     cont = input() 
if cont == "y": 
     print(result)   # output is:     ought to be: 
     chars = input()     #result      result 
     contin_num = float(input()) 
     calc(contin_num)  #result      operate y/n 
     print(result, chars, contin_num)  

elif cont == "n": 
     result = 0 
     print(result) 
else: 
     print ("Invalid response.") 


num1 = float(input()) 
chars = input() 
num2 = float(input()) 
result = 0  

while num1 > 0 or num2 > 0: 
    calc() 
    contin() 
    break 
if num1 == 0 and num2 == 0: 
    print("Zero or undefined.") 
+0

你的缩进是不好的:你的'elif'与'if'有不同的缩进,而且他们的缩进比其余的函数中的缩进更少。修正缩进,然后再试一次。 –

+0

这些只是我做的调整,因为Stack Exchange坚持我有四个空格缩进。在我的原始程序中,这不是这样,所有if和elif的缩进都是正确的。进行更正并尝试运行它。 – SOMEONEE

+1

不,您的责任是发布与您想要运行的代码相对应的代码。我不知道你想让你的函数'calc()'结束,所以我很难做出更正。发布代码的常用方法是从文本文件中复制并粘贴,用鼠标或键盘突出显示代码,然后在问题编辑器中单击“代码示例”图标(它看起来像一对大括号)。这将很容易地为每一行添加四个空格。 –

这是所需的代码。我更改了一些缩进在contin()函数和一些逻辑的情况下是错误的。请告诉我,如果我在某个地方错了,请告诉我。谢谢

def calc(num1,chars,num2):  #The function performing calculation. 
    if chars == "+": 
     result = num1 + num2 
     print (result) 
     return result 
    elif chars == "-": 
     result = num1 - num2 
     print(result) 
     return result 
    elif chars == "*": 
     result = num1 * num2 
     print(result) 
     return result 
    elif chars == "/": 
     result = float(num1)/float(num2) 
     print(result) 
     return result 
    else: 
     print("Invalid or unsupported operation") 

cont = "" 
def contin(res): 
     num1 = res 
     print("Operate? y/n: ") 
     cont = raw_input() 
    if cont == "y": 
      print(num1)   # output is:     ought to be: 
      chars = raw_input()     #result      result 
      num2 = float(input()) 
      num1=calc(num1,chars,num2)  #result      operate y/n 
      print num1  

    elif cont == "n": 
      result = 0 
      print(result) 
    else: 
      print ("Invalid response.") 


num1 = float(input()) 
chars = raw_input() 
num2 = float(input()) 
result = 0  

while num1 > 0 or num2 > 0: 
    res = calc(num1,chars,num2) 
    contin(res) 
    break 
if num1 == 0 and num2 == 0: 
    print("Zero or undefined.")