当前位置:   article > 正文

Python基础教程——制作简单计算器(完整版,附源码)_py简单计算器

py简单计算器

在这里插入图片描述

一、设计思路

在设计计算器程序时,我们需要考虑以下几个方面:

1. 界面设计:计算器需要一个简单的用户界面,用户可以通过该界面输入数字和运算符。

2. 数据类型:我们需要定义一些变量和数据类型来存储用户输入的数字和运算符,以及计算结果。

3. 运算逻辑:计算器需要根据用户输入的运算符来进行相应的数学运算,并输出计算结果。

在本文中,我们将采用Python语言实现一个基本的计算器,该计算器具有以下功能:

1. 支持加、减、乘、除四种基本运算。

2. 支持小数的运算。

3. 支持多次连续计算。

二、界面设计

计算器的界面应该简洁明了,方便用户输入数字和运算符。我们可以使用Python的tkinter库来实现界面设计。

首先,我们需要导入tkinter库,并创建一个窗口对象:

 

import tkinter as tk

window = tk.Tk()  

window.title("Calculator")



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

然后,我们可以在窗口中添加一些组件,如文本框、按钮等:



# 添加文本框

text = tk.Entry(window, width=25, font=('Arial', 16))

text.pack(side='top', pady=10)

# 添加按钮  

btn_1 = tk.Button(window, text='1', width=5, height=2)

btn_1.pack(side='left')

btn_2 = tk.Button(window, text='2', width=5, height=2)

btn_2.pack(side='left')

# ...



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

这里我们只添加了数字按钮,其他运算符按钮的添加类似。

三、数据类型

在计算器中,我们需要定义一些变量和数据类型来存储用户输入的数字和运算符,以及计算结果。

首先,我们需要定义一个变量来存储用户输入的数字:



num = ''



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

然后,我们需要定义一个变量来存储用户选择的运算符:


operator = ''


  • 1
  • 2
  • 3
  • 4

最后,我们需要定义一个变量来存储计算结果:


result = 0.0


  • 1
  • 2
  • 3
  • 4

四、运算逻辑

在计算器中,我们需要根据用户输入的运算符来进行相应的数学运算,并输出计算结果。

我们可以使用Python中的if语句来实现不同运算符的处理:


if operator == '+':

    result += float(num)

elif operator == '-':

    result -= float(num)

elif operator == '\*':

    result \*= float(num)

elif operator == '/':

    result /= float(num)


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

这里我们使用了Python中的float()函数将字符串转换为浮点数类型,以便进行数学运算。

最后,我们需要将计算结果输出到文本框中:


text.delete(0, 'end')

text.insert('end', str(result))


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

完整代码如下:


import tkinter as tk
from functools import partial

def create_calculator_window():
    window = tk.Tk()
    window.geometry("260x450")
    window.title("计算器")
    
    display = tk.Label(window, text="", font=("Helvetica", 16), height=2, width=16)
    display.grid(row=0, column=0, columnspan=4, pady=10)
    
    def on_keypress(key):
        if key == "AC":
            display["text"] = ""
        elif key == "←":
            display["text"] = display["text"][:-1]
        elif key == "%":
            try:
                expression = eval(display["text"])
                display["text"] = str(expression / 100)
            except:
                display["text"] = "Error"
        elif key == "=":
            try:
                expression = display["text"]
                expression = expression.replace("÷", "/")
                expression = expression.replace("x", "*")
                result = eval(expression)
                if isinstance(result, float) and result.is_integer():
                    result = int(result)
                display["text"] = str(result)
            except:
                display["text"] = "Error"
        else:
            if "=" in display["text"]:
                display["text"] = ""
            display["text"] += key
    
    keys = [
        ("AC", on_keypress),
        ("←", on_keypress),
        ("%", on_keypress),
        ("÷", on_keypress),
        ("7", on_keypress),
        ("8", on_keypress),
        ("9", on_keypress),
        ("x", on_keypress),
        ("4", on_keypress),
        ("5", on_keypress),
        ("6", on_keypress),
        ("-", on_keypress),
        ("1", on_keypress),
        ("2", on_keypress),
        ("3", on_keypress),
        ("+", on_keypress),
        ("0", on_keypress),
        (".", on_keypress),
        ("(", on_keypress),
        (")", on_keypress),
        ("=", on_keypress)
    ]
    
    row = 1
    col = 0
    for key, command in keys:
        button = tk.Button(window, text=key, font=("Helvetica", 12), height=2, width=5)
        button.grid(row=row, column=col, padx=5, pady=5)
        button.configure(command=partial(command, key))
        col += 1
        if col > 3:
            col = 0
            row += 1
    
    window.bind("<Key>", lambda event: on_keypress(event.char))
    
    window.mainloop()

if __name__ == "__main__":
    create_calculator_window()



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83

这里我们使用了全局变量来存储用户输入的数字和运算符,以及计算结果。我们还使用了lambda表达式来将数字和运算符与相应的按钮关联起来。

五、运行程序

保存上述代码为calculator.py文件,并在命令行中执行以下命令来运行程序:


python calculator.py


  • 1
  • 2
  • 3
  • 4

程序运行后,将会弹出一个计算器窗口,用户可以通过该窗口进行数字和运算符的输入,计算结果将会显示在文本框中。用户可以通过清除按钮清空计算器,也可以通过等号按钮进行连续计算。
建议计算机就做好啦!!!

最后这里免费分享给大家一份Python全台学习资料,包含视频、源码。课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!
Python所有方向的学习路线图,清楚各个方向要学什么东西
100多节Python课程视频,涵盖必备基础、爬虫和数据分析
100多个Python实战案例,学习不再是只会理论
华为出品独家Python漫画教程,手机也能学习
历年互联网企业Python面试真题,复习时非常方便

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/919059
推荐阅读
相关标签
  

闽ICP备14008679号