用python设计一个多功能计算器,实现以下运算,包括: 一、集合运算 1、求两个集合的交集 2、求两个集合的并集 3、求两个集合的差集 二、简单算术表达式求值运算 1、实现数值的加减乘除运算。要求可以直接输入一个简单表达式,求出该表达式的值。 三、简单进制转换 1、实现进制转换功能,可将整数从十进制转换成二进制、八进制、十六进制。
时间: 2023-11-08 14:30:05 浏览: 106
好的,我可以帮你实现一个多功能计算器。以下是代码实现:
```python
import re
# 集合运算
def set_operation():
print('请输入要进行集合运算的两个集合,用空格隔开:')
set1 = set(input().split())
set2 = set(input().split())
print('请选择要进行的集合运算:')
print('1. 求两个集合的交集')
print('2. 求两个集合的并集')
print('3. 求两个集合的差集')
choice = int(input())
if choice == 1:
print('两个集合的交集为:', set1 & set2)
elif choice == 2:
print('两个集合的并集为:', set1 | set2)
elif choice == 3:
print('两个集合的差集为:', set1 - set2)
else:
print('输入有误,请重新选择!')
# 简单算术表达式求值运算
def calculate_expression():
print('请输入要计算的简单算术表达式:')
expression = input().replace(' ', '')
# 利用正则表达式将数字和符号分离
pattern = re.compile(r'(\d+|[+\-*/])')
exp_list = pattern.findall(expression)
# 利用栈计算表达式的值
stack = []
for item in exp_list:
if item in ('+', '-', '*', '/'):
b = stack.pop()
a = stack.pop()
if item == '+':
stack.append(a + b)
elif item == '-':
stack.append(a - b)
elif item == '*':
stack.append(a * b)
else:
stack.append(a / b)
else:
stack.append(int(item))
print('计算结果为:', stack.pop())
# 简单进制转换
def convert_base():
print('请输入要转换的整数:')
num = int(input())
print('请选择要转换的进制:')
print('1. 十进制转二进制')
print('2. 十进制转八进制')
print('3. 十进制转十六进制')
choice = int(input())
if choice == 1:
print('转换结果为:', bin(num)[2:])
elif choice == 2:
print('转换结果为:', oct(num)[2:])
elif choice == 3:
print('转换结果为:', hex(num)[2:])
else:
print('输入有误,请重新选择!')
# 主程序
while True:
print('请选择要进行的操作:')
print('1. 集合运算')
print('2. 简单算术表达式求值运算')
print('3. 简单进制转换')
print('4. 退出程序')
choice = int(input())
if choice == 1:
set_operation()
elif choice == 2:
calculate_expression()
elif choice == 3:
convert_base()
elif choice == 4:
break
else:
print('输入有误,请重新选择!')
```
你可以运行这段代码,按照提示进行操作,实现多种计算功能。
阅读全文