Python创建计算器

我对python很新.

我被要求仅使用字符串命令创建计算器,int / string / float等之间的转换(如果需要),并且使用函数是必需的. while和for循环也可以使用.

程序需要采用x / y或x / y / z形式的输入,其中x y z是任何正数或负数.其中“/”也可以通过加法乘法和减法来代替.并且操作数和运算符之间可以存在任意数量的空格.这是我到目前为止的想法.

我对.,/和*有一个独特的定义.我会为用户输入的内容创建一个函数.我会使用“.lstrip”和“.rstrip”来摆脱空白区域.

现在我遇到的麻烦是创建输入功能.我对功能很新,这基本上就是我所拥有的.我知道这并不多,但我真的不知道如何正确进入这个功能.

def multiplication(x,a,y,b,z):
    if (a== "*"):
        return x*y
    if (b== "*"):
        return y*z

def division(x,a,y,b,z):
    if (a== "/"):
        return x/y
    if (b== "/"):
        return y/z

def addition(x,a,y,b,z):
    if (a== "+"):
        return x+y
    if (b== "+"):
        return y+z

def subtraction(x,a,y,b,z):
    if (a== "-"):
        return x-y
    if (b== "-"):
        return y-z

def (x,y,z):
    x=0
    y=0
    z=0

    zxc=int(input()):# this is where I get stuck and I don't know how to implement x,y,z into the input.

所有帮助表示赞赏.如果您不确定您提供的代码是否过于强烈以至于我的需求,请在浪费您的时间之前询问,制作我不可能使用的代码.我保证尽快回复.

基本上我试图找到一种方法来分割输入的字符串,然后用它开始计算.

解决方法:

这是使用正则表达式的可能解决方案大纲.错误检查左侧为锻炼.如果这不是作业,你想看到充实的解决方案,view it here

import re

# input is a list of tokens (token is a number or operator)
tokens = raw_input()

# remove whitespace
tokens = re.sub('\s+', '', tokens)

# split by addition/subtraction operators
tokens = re.split('(-|\+)', tokens)

# takes in a string of numbers, *s, and /s. returns the result
def solve_term(tokens):
    tokens = re.split('(/|\*)', tokens)
    ret = float(tokens[0])
    for op, num in <FILL THIS IN>:
        # <apply the operation 'op' to the number 'num'>
    return ret

# initialize final result to the first term's value
result = solve_term(tokens[0])

# calculate the final result by adding/subtracting terms
for op, num in <FILL THIS IN>:
    result +=  solve_term(num) * (1 if op == '+' else -1)

print result
上一篇:javascript – 如何计算数字和数学运算符的数组(或字符串)


下一篇:计算器应用程序包括java swing中的键盘输入