Python: 我正在编写一个程序(作为课程作业),它将接收表达式,例如 3/4/5 或者32432/23423/2354325或者3425*343/254235或者43252+34254-2435,等等(涵盖所有可用的运算符:+、-、×、÷)并计算表达式结果。
我不能使用 EVAL 函数!!
我不能使用高级代码,最多只能使用下面网站中提供的字符串操作函数来拆分字符串。
http://docs.python.org/2/library/stdtypes.html#typesseq
我的方法是查看用户输入的表达式,然后使用 find 函数找到每个运算符, 再使用切片函数(例如 s[0:x])来处理。但是以下代码很不幸地无法运行:*请注意, print 语句仅用于调试目的。
编辑:当我运行程序并输入表达式后,为什么 x 未定义?
z= (input("expression:")).strip()
def finding(z):
if "/" in z:
x=z.find("/")
print("hi1")
elif "*" in z:
x=z.find("*")
print("hi2")
elif "+" in z:
x=z.find("+")
print("hi3")
elif "-" in z:
x=z.find("-")
print("hi4")
else:
print("error, not math expression")
return x
def Parsing(z,x):
x= finding(z)
qw=z.s[0:x]
print (qw)
# take the x-value from function finding(z) and use it to split
finding(z)
Parsing(z,x)