Python 计算器代码示例:实现基础运算
当然可以!我会用 GPT-3.5 Turbo 版为您编写一个简单的计算器代码。下面是一个使用 Python 编写的示例:
import re
def calculator(expression):
# 删除空格
expression = re.sub(r'\\s+', '', expression)
# 定义运算符优先级
precedence = {'+': 1, '-': 1, '*': 2, '/': 2, '^': 3}
# 声明操作数栈和运算符栈
operands = []
operators = []
i = 0
while i < len(expression):
if expression[i].isdigit():
# 提取数字
num = ''
while i < len(expression) and (expression[i].isdigit() or expression[i] == '.'):
num += expression[i]
i += 1
operands.append(float(num))
elif expression[i] in precedence:
# 处理运算符
while operators and operators[-1] != '(' and precedence[expression[i]] <= precedence[operators[-1]]:
evaluate(operands, operators)
operators.append(expression[i])
i += 1
elif expression[i] == '(':
# 处理左括号
operators.append(expression[i])
i += 1
elif expression[i] == ')':
# 处理右括号
while operators and operators[-1] != '(':
evaluate(operands, operators)
operators.pop()
i += 1
else:
i += 1
while operators:
evaluate(operands, operators)
return operands[0]
def evaluate(operands, operators):
# 执行一次运算
if len(operands) < 2:
return
num2 = operands.pop()
num1 = operands.pop()
operator = operators.pop()
result = 0
if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*':
result = num1 * num2
elif operator == '/':
result = num1 / num2
elif operator == '^':
result = num1 ** num2
operands.append(result)
# 提示用户输入表达式
expression = input('请输入表达式:')
# 计算表达式结果
result = calculator(expression)
print('计算结果:', result)
请注意,这只是一个非常简单的计算器示例,可能无法处理复杂的数学运算或错误处理。您可以根据需要对代码进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/bJ8x 著作权归作者所有。请勿转载和采集!