实验内容

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

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

  1. def add(string): # 定义加法
  2. tmp = 0
  3. numbers = []
  4. numbers += string.split("+") # 对用户输入的数字以+号做分割,写入到列表里。
  5. for i in numbers: # 遍历列表。
  6. tmp += int(i.strip()) # 先对遍历的对象i,去除空格后,得出结果tmp = i + tmp
  7. print("{0} = {1}".format(string, tmp)) # 打印结果tmp
  8. def subtraction(string): # 定义减法
  9. numbers = []
  10. numbers += string.split("-") # 对用户输入的数字以-号做分割,写入到列表里。
  11. tmp = int(numbers[0].strip()) # 取列表的第一个数字给tmp
  12. numbers.pop(0) # 因为第一个值给了tmp 所以删除第一个值。
  13. for i in numbers: # 遍历numbers
  14. tmp -= int(i.strip()) # 得出结果tmp ,每次循环都删除第一个值然后相减。
  15. print("{0} = {1}".format(string, tmp))
  16. def multiplication(string): # 定义乘法
  17. numbers = []
  18. numbers += string.split("*") # 对用户输入的数字以*号做分割,写入到列表里。
  19. tmp = int(numbers[0].strip()) # 取列表的第一个数字给tmp
  20. numbers.pop(0) # 因为第一个值给了tmp 所以删除第一个值。
  21. for i in numbers: # 遍历numbers
  22. tmp *= int(i.strip()) # 得出结果tmp ,每次循环都删除第一个值然后相乘。
  23. print("{0} = {1}".format(string, tmp))
  24. def division(string): # 定义除法
  25. numbers = []
  26. numbers += string.split("/") # 对用户输入的数字以/号做分割,写入到列表里。
  27. tmp = int(numbers[0].strip()) # 取列表的第一个数字给tmp
  28. numbers.pop(0) # 因为第一个值给了tmp 所以删除第一个值。
  29. for i in numbers: # 遍历numbers
  30. tmp /= int(i.strip()) # 得出结果tmp ,每次循环都删除第一个值然后相除。
  31. print("{0} = {1}".format(string, tmp))
  32. if __name__ == '__main__': # 定义执行方式,当执行脚本本身,执行如下代码。
  33. print("******************************")
  34. print(" 计算器")
  35. print("******************************")
  36. chose = input("选择你要的计算方式,1/加法 ,2/减法,3/乘法,4/除法: ")
  37. if chose == "1":
  38. tmp = input("请输入你要计算的数字:")
  39. add(tmp)
  40. elif chose == '2':
  41. tmp = input("请输入你要计算的数字:")
  42. subtraction(tmp)
  43. elif chose == '3':
  44. tmp = input("请输入你要计算的数字:")
  45. multiplication(tmp)
  46. elif chose == '4':
  47. tmp = input("请输入你要计算的数字:")
  48. division(tmp)
  49. else:
  50. 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. Java并发编程的艺术(二)——volatile、原子性

    什么是volatile Java语言允许线程访问共享变量,为了确保共享变量能够被准确一致地更新,如果一个字段被声明为volatile,那么Java内存模型将会确保所有线程看到这个变量时值是一致的.保证 ...

  2. redis学习之——CentOS 6 下载安装redis

    一.检查当前环境: 安装过程中没有这些,命令,在CentOS 6,最小安装导致..如果执行完命令,Noting  to  do...字样说明环境正常. yum -y install rpm gcc w ...

  3. Java8的StreamAPI常用方法总结

    目录 什么是Stream? Stream的创建 测试API 新建测试数据 findFirst.findAny anyMatch.noneMatch filter max.count peek.map ...

  4. sql 执行语句函数

    # sql 语句执行函数 def get_access(request): uid=request cursor=connection.cursor() cursor.execute("se ...

  5. 设置RAC DB归档

    1.关闭集群数据库 srvctl stop database -d RAC 2.将节点一设置为归档模式 sqlplus / as sysdba startup mount alter database ...

  6. AWT03-LayoutManager布局管理器

    1.LayoutManager布局管理器 在之前的学习中,我们使用setBounds()方法设置容器的位置大小,但我们不得不明白一件事--如果我们手动为容器设置位置大小的话,就会造成程序通用性的下降. ...

  7. Golang之应用测试

    Go 应用测试 测试的覆盖率 命令: go test ./ -v -cover 在<Go Web 编程>一书中,有以下结论: 这并不是绝对的,测试文件可以在不同的包,进行测试也是不会出现问 ...

  8. Flink统计日活

    .keyBy(0) .window(TumblingProcessingTimeWindows.of(Time.days(1), Time.hours(-8))) .trigger(Continuou ...

  9. 跟我一起学Redis之高可用从主从复制开始

    前言 现在遇到高并发场景时,缓存技术应该算是性能优化的第一步,缓解数据库压力的同时还能提高访问效率,而Redis应该是绝大多数应用场景的首选.但是尽快Redis性能再优秀,在当今高并发场景下,一台服务 ...

  10. Python之matplotlib画图

    折线图: Matplotlib处理csv文件 这里写两个其他的. 柱状图,柱状图个人喜欢用pygal来画,有两篇文章 - Pygal之掷骰子 和 pygal之掷骰子 - 2颗面数为6的骰子.下面用ma ...