-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