实验内容

1.简单计算器的设计
请设计简单的“加减乘除”计算器并从键盘上输入数据进行计算

数字的加减乘除,input返回的结果是str类型的,通过截取字符串中的运算符,来提取数字,循环操作,返回结果。具体操作步骤在代码的注释里。

def add(string):  # 定义加法
tmp = 0
numbers = []
numbers += string.split("+") # 对用户输入的数字以+号做分割,写入到列表里。
for i in numbers: # 遍历列表。
tmp += int(i.strip()) # 先对遍历的对象i,去除空格后,得出结果tmp = i + tmp
print("{0} = {1}".format(string, tmp)) # 打印结果tmp def subtraction(string): # 定义减法
numbers = []
numbers += string.split("-") # 对用户输入的数字以-号做分割,写入到列表里。
tmp = int(numbers[0].strip()) # 取列表的第一个数字给tmp
numbers.pop(0) # 因为第一个值给了tmp 所以删除第一个值。
for i in numbers: # 遍历numbers
tmp -= int(i.strip()) # 得出结果tmp ,每次循环都删除第一个值然后相减。
print("{0} = {1}".format(string, tmp)) def multiplication(string): # 定义乘法
numbers = []
numbers += string.split("*") # 对用户输入的数字以*号做分割,写入到列表里。
tmp = int(numbers[0].strip()) # 取列表的第一个数字给tmp
numbers.pop(0) # 因为第一个值给了tmp 所以删除第一个值。
for i in numbers: # 遍历numbers
tmp *= int(i.strip()) # 得出结果tmp ,每次循环都删除第一个值然后相乘。
print("{0} = {1}".format(string, tmp)) def division(string): # 定义除法
numbers = []
numbers += string.split("/") # 对用户输入的数字以/号做分割,写入到列表里。
tmp = int(numbers[0].strip()) # 取列表的第一个数字给tmp
numbers.pop(0) # 因为第一个值给了tmp 所以删除第一个值。
for i in numbers: # 遍历numbers
tmp /= int(i.strip()) # 得出结果tmp ,每次循环都删除第一个值然后相除。
print("{0} = {1}".format(string, tmp)) if __name__ == '__main__': # 定义执行方式,当执行脚本本身,执行如下代码。
print("******************************")
print(" 计算器")
print("******************************")
chose = input("选择你要的计算方式,1/加法 ,2/减法,3/乘法,4/除法: ")
if chose == "1":
tmp = input("请输入你要计算的数字:")
add(tmp)
elif chose == '2':
tmp = input("请输入你要计算的数字:")
subtraction(tmp)
elif chose == '3':
tmp = input("请输入你要计算的数字:")
multiplication(tmp)
elif chose == '4':
tmp = input("请输入你要计算的数字:")
division(tmp)
else:
print("你输入的有误,请重新输入")

测试结果:




如果不按要求输入会提示错误

python3实现计算器的更多相关文章

  1. python3.5 + PyQt5 +Eric6 实现的一个计算器

    目前可以实现简单的计算.计算前请重置,设计的时候默认数字是0,学了半天就做出来个这么个结果,bug不少. python3.5 + PyQt5 +Eric6 在windows7 32位系统可以完美运行 ...

  2. 从零开始学习PYTHON3讲义(十一)计算器升级啦

    (内容需要,本讲中再次使用了大量在线公式,如果因为转帖网站不支持公式无法显示的情况,欢迎访问原始博客.) <从零开始PYTHON3>第十一讲 第二讲的时候,我们通过Python的交互模式来 ...

  3. 从零开始学习PYTHON3讲义(二)把Python当做计算器

    <从零开始PYTHON3>第二讲 上一讲我们说过了如何启动Python IDLE集成开发学习环境,macOS/Linux都可以在命令行执行idle3.Windows则从开始菜单中去寻找ID ...

  4. python3 正则表达式 re模块之辣眼睛 计算器

    额...学到几个常用模块了,也要其中考试了,每天晚上敲一点,敲得脑壳疼,不过又想到好一点的办法了,有时间再改吧. 此非吾所欲也,实属无奈也....复习之路漫漫,吾将到书上求索,在此不多逗留,我挥一挥衣 ...

  5. Python3 基本数据类型

    Python中的变量不需要声明,每个变量使用前必须赋值,变量赋值后才会被创建,在Python中变量就是变量,它没有类型.我们所说的"类型"是变量所指的内存中对象的类型. 等号(=) ...

  6. python之计算器(第四天)

    作业: 使用正则表达式和递归实现计算器功能. 实现: 1.实现带括号的计算 2.实现指数.加减乘除求余等功能 一.实例说明: 本实例自己写了个版本,但依旧存在一点bug,例:-2-2等计算问题,故最后 ...

  7. 用Python3实现表达式求值

    一.题目描述 请用 python3 编写一个计算器的控制台程序,支持加减乘除.乘方.括号.小数点,运算符优先级为括号>乘方>乘除>加减,同级别运算按照从左向右的顺序计算. 二.输入描 ...

  8. Python全栈--6.1-match-search-findall-group(s)的区别以及计算器实例

    match.search.findall.group(s) 区别 import re # match findall经常用 # re.match() #从开头匹配,没有匹配到对象就返回NONE # r ...

  9. python 编程之计算器

    作业: 使用正则表达式和递归实现计算器功能. 实现: 1.实现带括号的计算 2.实现指数.加减乘除求余等功能 一.实例说明: 本实例自己写了个版本,但依旧存在一点bug,例:-2-2等计算问题,故最后 ...

随机推荐

  1. 【ZJOI2019】线段树(线段树 & dp)

    Link UOJ LOJ Luogu Solution 很玄妙的一道题,考察了对线段树较本质的理解 然而我并不会这个所谓最可做的题 首先,虽然题目很复杂,好像每个点的标记变化都很玄学,但是我们可以深入 ...

  2. AGC043 B题题解

    有的时候,碰到一道题,要给自己先设立部分分,再去想如何把部分分推广到一般情况.这题就是绝佳的例子. 不妨将\(a_i\)用\(a_i - 1\)替代,这样就变成了\(a_i \in \{ 0, 1, ...

  3. redis学习之——redis.conf配置(基本)文件学习

    # Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...

  4. 数组问题:a[i][j] 和 a[j][i] 有什么区别?

    本文以一个简单的程序开头--数组赋值: int LEN = 10000; int[][] arr = new int[LEN][LEN]; for (int i = 0; i < LEN; i+ ...

  5. 短视频去水印v1.0(还支持74个平台)

    软件介绍: 一款很好用的短视频去水印软件,支持74个平台无水印解析,还支持批量视频解析只需要输入账号主页链接就可以了哦,快来下载试试吧!   软件版本:1.0   支持系统:安卓   软件大小:22. ...

  6. github内的一些操作

    github远程仓库的克隆操作 1,找到你想要克隆的地址,复制下来 2,切入到git所在目录下,输入 git clone 复制的地址 设置过滤文件不纳入git管理 1,在git目录下创建一个.giti ...

  7. Spring源码分析之AOP从解析到调用

    正文: 在上一篇,我们对IOC核心部分流程已经分析完毕,相信小伙伴们有所收获,从这一篇开始,我们将会踏上新的旅程,即Spring的另一核心:AOP! 首先,为了让大家能更有效的理解AOP,先带大家过一 ...

  8. MySQL锁:02.InnoDB锁

    目录 InnoDB锁 InnoDB行锁实现机制 InnoDB隐式.显式锁 InnoDB锁类型 共享锁 排他锁 意向锁 InnoDB锁兼容性 InnoDB行锁范围.粒度 InnoDB行锁粒度一览 意向插 ...

  9. JS怎么把for循环出来的东西放到一个数组里

    var students=[ {name: "vehicleTravelLicenseCopyBack", id: "a1"}, {name: "ve ...

  10. mysql单机多实例配置

    Windows上配置多个mysql实例,主要改下配置文件即可,mysql目录如下: my2中主要改两个配置内容 datadir = D:/Program Files/Mysql/mysql-5.7.2 ...