python 科学计算器_【案例】用 tkinter 做一个计算器吧?(版本一)

d891a136263e9cbbb3754d57d5a2ef97.png

案例介绍

今天我们来做一个简易版的计算器,为什么说是简易版呢?因为我们没有清空键、退格键、百分号、括号、数学运算所需要的特殊符号。

我们将要学习:1.如何科学地批量生成按钮,并赋予事件以及位置。2.python 中数学运算如何实现。

准备工作

  • Python 3.x

界面模块

界面包括了两个部分内容:输入框(同时作为输出框),键盘按钮。

【key points】

1. 按钮的 relief 属性:[tkinter中按钮的浮雕样式](tkinter中按钮的浮雕样式_python_铭のブロゲ-CSDN博客)

2. 传入带参数的属性值:command=lambda idx=key:btn_command(idx)

def btn_command(idx=None):
    pass

计算模块

计算模块我们会单独写一个函数,来拓展未来可能会遇到的复杂情况。

代码汇总

# coding: utf-8
# !/usr/bin/python
"""
@File       :   计算器.py
@Author     :   jiaming
@Modify Time:   2020/4/26 21:27
@Contact    :   https://jiaming.blog.csdn.net/
@Version    :   1.0
@Desciption :   没有 AC,回退,括号,百分号
"""
import tkinter as tk

# 文本框中内容
TEXT_str = ''

def get_value():
    """
    求值
    :return:
    """
    try:
        value = str(eval(TEXT_str))
        return value
    except:
        print('出错!')
        return ''


def main():
    """
    绘制计算器界面
    """
    # 界面对象的基本参数设置
    root = tk.Tk()
    root.title("计算器(Version1)")
    root.geometry('335x215+250+250')
    # 设置界面是否可以随意拉伸
    root.resizable(False, False)


    text_list = [
        '7', '8', '9', '+',
        '4', '5', '6', '-',
        '1', '2', '3', '*',
        '.', '0', '=', '/',
    ]

    # 放置文本框
    Entry_word = tk.Entry(root, width=30, font=('Arial', 15))
    Entry_word.grid(row=0, column=0, columnspan=4)

    def btn_command(idx=None):
        """
        按钮事件
        :param idx:
        :return:
        """
        global TEXT_str
        # 打印按钮的 text 值
        s = text_list[idx]
        print("输入:", s)
        if s != '=':
            TEXT_str += s
            # print(TEXT_str)
            Entry_word.delete(0, tk.END)
            Entry_word.insert(tk.END, TEXT_str)
        else:
            # 按下等号,调用求值函数
            value_str = get_value()
            TEXT_str = ''
            Entry_word.delete(0, tk.END)
            Entry_word.insert(tk.END, value_str)

    # 放置按钮
    key = 0
    for i in range(1, 5):
        for j in range(0, 4):
            btn = tk.Button(root, text=text_list[key], width=10, height=2,
                            relief=tk.GROOVE, command=lambda idx=key:btn_command(idx))
            btn.grid(row=i, column=j)
            key += 1

    root.mainloop()


if __name__ == "__main__":
    main()

运行截图

08ac60d4c3a6f3470612d2c8462d3f15.png

20e50ebd3f5129b39b505348991b2b45.png

19600021342d9a4f6300d9230106d26d.png

0cfcfe99945a5dfed2e9d3b2e9b32f5a.png

后记

以上就是关于如何使用 tkinter 制作一个简易计算器的全部内容,接下来,我们会加入清空、退格、括号、数学计算等功能。

01e88636197733fbe75dffbfc702d93b.gif

欢迎关注我的 CSDN 博客,里面有更多关于 python 的精彩知识分享哦~

CSDN-专业IT技术社区-登录​jiaming.blog.csdn.net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值