2016-08-01 103 views
0

我遇到了運行此程序的麻煩。
它告訴我,我有一個嘗試將字符串轉換爲浮點時的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()'結束,所以我很難做出更正。發佈代碼的常用方法是從文本文件中複製並粘貼,用鼠標或鍵盤突出顯示代碼,然後在問題編輯器中單擊「代碼示例」圖標(它看起來像一對大括號)。這將很容易地爲每一行添加四個空格。 –

回答

0

這是所需的代碼。我更改了一些縮進在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.") 
相關問題