尝试将字符串转换为浮点时的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.")
答
这是所需的代码。我更改了一些缩进在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.")
你的缩进是不好的:你的'elif'与'if'有不同的缩进,而且他们的缩进比其余的函数中的缩进更少。修正缩进,然后再试一次。 –
这些只是我做的调整,因为Stack Exchange坚持我有四个空格缩进。在我的原始程序中,这不是这样,所有if和elif的缩进都是正确的。进行更正并尝试运行它。 – SOMEONEE
不,您的责任是发布与您想要运行的代码相对应的代码。我不知道你想让你的函数'calc()'结束,所以我很难做出更正。发布代码的常用方法是从文本文件中复制并粘贴,用鼠标或键盘突出显示代码,然后在问题编辑器中单击“代码示例”图标(它看起来像一对大括号)。这将很容易地为每一行添加四个空格。 –