Java 我想做一个非常基本的计算器,只需一次输入,但我有点费劲

Java 我想做一个非常基本的计算器,只需一次输入,但我有点费劲,java,python,Java,Python,所以我有两个不同的计算器代码,一个稍微高级,另一个还没有完成。我正试图获得帮助,要么使我完成的代码有一点基本,因为我不知道采取什么方法来降低它,要么帮助我完成我的其他代码 所以我试着让计算器基本上工作,但它有3个不同的输入,我只需要一个输入就可以计算出来 成品(先进品种) 未完成的产品不确定这是否被认为是基本的,但考虑Enter()函数。基本上,它将输入转换为python代码并运行它,因为用户输入可能与python代码相同,所以您可以只运行输入 expr = input("In: ") prin

所以我有两个不同的计算器代码,一个稍微高级,另一个还没有完成。我正试图获得帮助,要么使我完成的代码有一点基本,因为我不知道采取什么方法来降低它,要么帮助我完成我的其他代码

所以我试着让计算器基本上工作,但它有3个不同的输入,我只需要一个输入就可以计算出来

成品(先进品种)


未完成的产品

不确定这是否被认为是基本的,但考虑Enter()函数。基本上,它将输入转换为python代码并运行它,因为用户输入可能与python代码相同,所以您可以只运行输入

expr = input("In: ")
print(eval(expr))

不确定这是否被认为是基本的,但是考虑EVAR()函数。基本上,它将输入转换为python代码并运行它,因为用户输入可能与python代码相同,所以您可以只运行输入

expr = input("In: ")
print(eval(expr))

我不相信你会比第一个版本简单得多

我唯一能建议的调整是,如果你只处理只有一个数学运算符的计算,你可以使用elif语句,这样一旦找到正确的运算符,你就不用费心检查了。类似于您开始第二个版本的方式

user_input = input("In:")

    if '+' in user_input:
        exp = user_input.split('+')
        print("The result is: {0}".format(int(int(exp[0]) + int(exp[1]))))
    elif '-' in user_input:
        exp = user_input.split('-')
        print("The result is: {0}".format(int(int(exp[0]) - int(exp[1]))))
    elif '*' in user_input:
        exp = user_input.split('*')
        print("The result is: {0}".format(int(int(exp[0]) * int(exp[1]))))
    elif '/' in user_input:
        exp = user_input.split('/')
        print("The result is: {0}".format(int(int(exp[0]) / int(exp[1]))))
    elif '%' in user_input:
        exp = user_input.split('%')
        print("The result is: {0}".format(int(int(exp[0]) % int(exp[1]))))

我不相信你会比第一个版本简单得多

我唯一能建议的调整是,如果你只处理只有一个数学运算符的计算,你可以使用elif语句,这样一旦找到正确的运算符,你就不用费心检查了。类似于您开始第二个版本的方式

user_input = input("In:")

    if '+' in user_input:
        exp = user_input.split('+')
        print("The result is: {0}".format(int(int(exp[0]) + int(exp[1]))))
    elif '-' in user_input:
        exp = user_input.split('-')
        print("The result is: {0}".format(int(int(exp[0]) - int(exp[1]))))
    elif '*' in user_input:
        exp = user_input.split('*')
        print("The result is: {0}".format(int(int(exp[0]) * int(exp[1]))))
    elif '/' in user_input:
        exp = user_input.split('/')
        print("The result is: {0}".format(int(int(exp[0]) / int(exp[1]))))
    elif '%' in user_input:
        exp = user_input.split('%')
        print("The result is: {0}".format(int(int(exp[0]) % int(exp[1]))))

你有问题吗?第一个版本很好,很简单。只有我不会全部用
print(…)
来写,因为这会降低代码的可读性。正如@furas所说,当你的第二个工作时,它不会比第一个更复杂。我建议您在每个
if
中计算
result
变量,比如
result=int(exp[0])-int(exp[1])
。然后用一条
print
语句在底部打印答案。另外,您不需要外部的
int
cast,因为您的表达式已经生成了
int
s。我不知道在第二个版本中要做什么,但它开始看起来与第一个版本非常相似。若你们需要一些不同的东西(你们需要挑战),那个么你们可以使用构建解析器,或者你们有什么问题吗?第一个版本很好,也很简单。只有我不会全部用
print(…)
来写,因为这会降低代码的可读性。正如@furas所说,当你的第二个工作时,它不会比第一个更复杂。我建议您在每个
if
中计算
result
变量,比如
result=int(exp[0])-int(exp[1])
。然后用一条
print
语句在底部打印答案。另外,您不需要外部的
int
cast,因为您的表达式已经生成了
int
s。我不知道在第二个版本中要做什么,但它开始看起来与第一个版本非常相似。如果您需要一些不同的东西(您需要挑战),那么使用或构建解析器