-3
所以我一直在試圖做一個計算器來解決x,但我需要檢查一個字符串是否是一個整數。我試圖把float("string")
來檢查,但如果它不是一個浮點數,它會顯示一個錯誤:
[ValueError: invalid literal for float():]
下面是完整的代碼:如何檢查一個字符串是一個整數
print "Please enter your equation. Put spaces after each term, like this: 5x -3 = 7. Also, use x as your variable."
def solve_for_x():
equ = raw_input("Enter your equation:")
var1 = equ.split('=')
var2 = equ.split()
string_var0 = str(var2[0])
string_var1 = str(var2[1])
string_var2 = str(var2[2])
if float(string_var0) == int or float:
always_integer = float(string_var0)
always_coefficient = float(string_var1.split('x'))
if float(string_var2) == int or float:
sol = float(string_var2)
ans = (sol - always_integer)/always_coefficient
print 'x', "=",ans
else:
always_integer = float(string_var0)
always_coefficient = float(string_var1.split('x'))
always_coefficient2 = float(string_var2.split('x'))
final_coefficient = always_coefficient2 - always_coefficient
ans = always_integer/final_coefficient
print 'x',"=",ans
else:
always_integer = float(string_var1)
always_coefficient = float(string_var2.split('x'))
if float(string_var2) == int or float:
sol = float(string_var2)
ans = (sol - always_integer)/always_coefficient
print 'x', "=",ans
else:
always_integer = float(string_var1)
always_coefficient = float(string_var0.split('x'))
always_coefficient2 = float(string_var2.split('x'))
final_coefficient = always_coefficient2 - always_coefficient
ans = always_integer/final_coefficient
print 'x', '=',ans
solve_for_x()
而且,當你運行代碼,爲什麼它會在最後一行顯示錯誤solve_for_x()?
很遺憾,如果這是一個初學者程序/有很多,我剛開始Python的一個星期前在它的錯誤的:P
字符串是從來都不是整數,並且從字符串解析的int用'int'完成,而不是'float'。如果你想檢查一個字符串是否可以被解析爲一個整數,試着用'int'解析它,如果失敗,就捕獲ValueError。 – user2357112
('isdigit'經常被提示,但是錯誤的'isdigit'是關於一個字符串的字符是否是數字,''-1''沒有通過'isdigit'的檢查) – user2357112
有2 *錯*這裏:'如果float(string_var0)== int或float:'1.這個''或'條件不起作用。 2.這不是如何進行類型檢查 – alfasin