漫星闪 发表于 2022-8-16 10:59:07

Python怪问题:计算器的实现

欢迎来到漫星闪的新系列,Python怪问题:https://fishc.com.cn/forum.php?mod=collection&action=view&ctid=2001&fromop=my。在这个系列里,我会带大家看各种问题,并提出见解,那么是时候切入问题了:一个支持两数四则运算的计算器(注:此问题灵感来自于我的https://fishc.com.cn/thread-216144-1-1.html)
这时我们就要思考了,我们要做一个怎样的计算器呢,以下是我的答案:

1.麻烦不实用:初学者最常见的方法,不熟悉BIF函数内置函数的我就是这么做的while 8 < 9:   
    a = input("number1:")
    b = input("number2:")
    c = input("请输入运算符:")

    if c == "+":
      d = float(a) + float(b)
      print(d)

    elif c == "-":
      e = float(a) - float(b)
      print(e)

    elif c == "*":
      f = float(a) * float(b)
      print(f)

    elif c == "/":
      g = float(a) / float(b)
      print(g)

2.一行流型:简单粗暴,而且还能计算多数之和while 9>3:
    print(eval(input('请输入算式 :')))

3.精准型:无论是上面哪种办法,计算浮点数都不是太专业,所以这种方法其实相当于是麻烦不实用法的decimal版"""计算器"""
import decimal

while 8 < 9:
   
    a = input("number1:")
    b = input("number2:")
    c = input("请输入运算符:")

    decimal.Decimal(a)
    decimal.Decimal(b)

    if c == "+":
      d = float(a) + float(b)
      print(d)

    elif c == "-":
      e = float(a) - float(b)
      print(e)

    elif c == "*":
      f = float(a) * float(b)
      print(f)

    elif c == "/":
      g = float(a) / float(b)
      print(g)

最后来养养眼:https://ts1.cn.mm.bing.net/th/id/R-C.e4193fcbf5e2697ed25f7b8e110ca435?rik=HKpzkhyGltXN3g&riu=http%3a%2f%2fn.sinaimg.cn%2fsinacn20190612s%2f230%2fw1200h630%2f20190612%2f3955-hyeztyt1754887.jpg&ehk=IFB0C%2fBn0pEP7Wkw9SJHRiJuepgVsUjieQACGR%2f46sE%3d&risl=&pid=ImgRaw&r=0

tommyyu 发表于 2022-8-16 11:29:32

import os
os.system('calc'){:10_256:}

漫星闪 发表于 2022-8-16 12:00:36

这个,简单粗暴,直接调用

jinyao823 发表于 2022-8-16 12:48:09

二楼是直接调用计算器了吧?

wp231957 发表于 2022-8-19 07:38:23

漫星闪 发表于 2022-8-16 12:00
这个,简单粗暴,直接调用

while 9>3:这个语句百思不得姐

阳顺 发表于 2022-8-19 11:22:14

我晕,你直接在shell里加减剩除就可以了不用写代码,这哪叫计算器,至少有个显示控件吧

liuhongrun2022 发表于 2023-1-5 17:59:18

wp231957 发表于 2022-8-19 07:38
while 9>3:这个语句百思不得姐

这个语句相当于while True吧
只要9大于3就运行
页: [1]
查看完整版本: Python怪问题:计算器的实现