📜  python 计算器 - Python (1)

📅  最后修改于: 2023-12-03 15:19:11.749000             🧑  作者: Mango

Python 计算器

Python 计算器是一款使用 Python 语言编写的计算器程序。它可以进行基本的数学运算,如加、减、乘、除等操作,也支持复杂的数学运算,如三角函数、对数函数、指数函数等操作。

安装

要使用 Python 计算器,您需要先安装 Python 语言的运行环境。您可以从 Python 官方网站 (https://www.python.org/downloads/) 下载最新版的 Python 解释器。安装后,您可以在终端中输入以下命令检查 Python 是否正确安装:

python --version

如果 Python 版本正确显示,则说明已经正确安装 Python 解释器。

然后,您需要下载 Python 计算器的源代码。您可以从 GitHub 仓库 (https://github.com/yourname/yourproject) 下载最新版的源代码,或者使用 Git 克隆仓库:

git clone https://github.com/yourname/yourproject.git

下载完成后,您可以进入项目目录,运行以下命令启动 Python 计算器:

python calculator.py
功能

Python 计算器支持以下的数学运算:

  • 加法 (+
  • 减法 (-
  • 乘法 (*
  • 除法 (/
  • 取模 (%
  • 整除 (//
  • 次幂 (**
  • 绝对值 (abs()
  • 四舍五入 (round()
  • 最大值 (max()
  • 最小值 (min()

此外,Python 计算器还支持复杂的数学运算:

  • 正弦函数 (sin())
  • 余弦函数 (cos())
  • 正切函数 (tan())
  • 反正弦函数 (asin())
  • 反余弦函数 (acos())
  • 反正切函数 (atan())
  • 对数函数 (log()log10())
  • 指数函数 (exp())
  • 平方根函数 (sqrt())
  • 绝对值 (abs())
  • 逆元素 (inv())
  • 求和 (sum())
  • 取整 (ceil()floor())
  • 随机数 (random())
使用

Python 计算器的使用非常简单。您只需要在命令行中输入需要计算的数学表达式,然后按下 Enter 键,即可得到计算结果。

以下是一些示例:

$ python calculator.py
>>> 2 + 3 * 4
14
>>> sin(0.5)
0.479425538604203
>>> sqrt(4) * PI
6.283185307179586
>>> random()
0.40476263923049147
代码

Python 计算器的源代码非常简单。以下是主要部分的代码片段:

import math
import random

def evaluate(expression):
	stack = []
	for token in expression:
		if token.isdigit():
			stack.append(int(token))
		elif token in "+-*/%//**":
			b = stack.pop()
			a = stack.pop()
			if token == "+":
				stack.append(a+b)
			elif token == "-":
				stack.append(a-b)
			elif token == "*":
				stack.append(a*b)
			elif token == "/":
				stack.append(a/b)
			elif token == "%":
				stack.append(a%b)
			elif token == "//":
				stack.append(a//b)
			elif token == "**":
				stack.append(a**b)
		elif token in "sincostan":
			x = stack.pop()
			if token == "sin":
				stack.append(math.sin(x))
			elif token == "cos":
				stack.append(math.cos(x))
			elif token == "tan":
				stack.append(math.tan(x))
		elif token in "asinacosatan":
			x = stack.pop()
			if token == "asin":
				stack.append(math.asin(x))
			elif token == "acos":
				stack.append(math.acos(x))
			elif token == "atan":
				stack.append(math.atan(x))
		elif token in "logexp":
			x = stack.pop()
			if token == "log":
				stack.append(math.log(x))
			elif token == "log10":
				stack.append(math.log10(x))
			elif token == "exp":
				stack.append(math.exp(x))
		elif token == "sqrt":
			x = stack.pop()
			stack.append(math.sqrt(x))
		elif token == "inv":
			x = stack.pop()
			stack.append(1/x)
		elif token == "sum":
			stack.append(sum(stack))
		elif token == "abs":
			x = stack.pop()
			stack.append(abs(x))
		elif token == "round":
			x = stack.pop()
			stack.append(round(x))
		elif token == "min":
			stack.append(min(stack))
		elif token == "max":
			stack.append(max(stack))
		elif token == "ceil":
			x = stack.pop()
			stack.append(math.ceil(x))
		elif token == "floor":
			x = stack.pop()
			stack.append(math.floor(x))
		elif token == "random":
			stack.append(random.random())
		else:
			return None
	if len(stack) == 1:
		return stack[0]
	else:
		return None

while True:
	expression = input(">>> ")
	if not expression:
		break
	result = evaluate(expression)
	if result is not None:
		print(result)
	else:
		print("Error: Invalid expression")

请注意,此代码示例不能完全代表 Python 计算器的完整功能和实现方式。此示例仅包含部分函数和运算符的实现。要了解完整的 Python 计算器源代码,请参阅 GitHub 代码库。