RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1361559
Accepted
Zekoyka
Zekoyka
Asked:2022-05-16 05:13:37 +0000 UTC2022-05-16 05:13:37 +0000 UTC 2022-05-16 05:13:37 +0000 UTC

删除最后一个字符

  • 772

计算器有一个按钮удаления последнего введеного символа。我想通过调用将删除label1最后一个字符的函数来实现它。

我正在尝试使其成为标准,[:-1]但由于某种原因它不起作用,我以同样的方式尝试了它return label1["text"] [:-1]。但它不出来。

在此处输入图像描述

这是代码(函数def last_sim():):

from tkinter import *
import math
#from tkinter.ttk import Radiobutton


window = Tk()
window.title("Calculator")
oper=["+","-","*","/"]
number = IntVar()
window.geometry('350x250')
global operand1, lastop, lastres
lastop=0
operand1=0
lastres=0

def add():
    
    label1["text"] =   label1["text"] + str(number.get())
    label2["text"] =   label2["text"] + str(number.get())
    
def op():
    global operand1
    global lastop
    operand1=int(label1["text"])
    label1["text"] = ""
    lastres=operand1
    lastop=number.get()
    
    label2["text"] =   label2["text"] + label1["text"]
    label2["text"] =   label2["text"] + oper[lastop-11]
    #if lastres!=0:
        #operand1+=lastres
        #print("Увеличили операнд1", operand1)
        #lastres=0
    if lastop==11:
        print("lastres= ",lastres,"operand1= ",operand1)
        lastres+=operand1
        operand1+=int(label1["text"])
        print("lastres= ",lastres,"operand1= ",operand1)
def vyvod():
    global operand1
    global lastop
    global lastres
    
    if lastop==11:
        operand1+=int(label1["text"])
        label1["text"] = str(operand1)
        label2["text"] =   label2["text"] +  " = " + label1["text"]

    if lastop==12:

        operand1-=int(label1["text"])
        label1["text"] = str(operand1)
        label2["text"] =   label2["text"] +  " = " + label1["text"]

    elif lastop==13:    
        operand1*=int(label1["text"])
        label1["text"] = str(operand1)
        label2["text"] =   label2["text"] +  " = " + label1["text"]

    elif lastop==14:    
        operand1/=int(label1["text"])
        label1["text"] = str(operand1)
        label2["text"] =   label2["text"] +  " = " + label1["text"]
    else:
        print("Ошибка в операции")

def koren():
        operand1 = math.sqrt(int(label1["text"])) 
        label1["text"] = str(operand1)
        label2["text"] =   label2["text"] +  " = " + label1["text"]
      
def clean():
     global operand1
     global lastop
     global lastres
     operand1=0
     lastop=0
     lastres=0
     label1["text"] = ""
     label2["text"] = ""

def last_sim():
    return label1["text"] [:-1]


btn1=Radiobutton(window,indicatoron=0,text="1",width=2,variable=number,value=1,command=add,bg="lightgreen")
btn2=Radiobutton(window,indicatoron=0,text="2",width=2,variable=number,value=2,command=add,bg="lightgreen")
btn3=Radiobutton(window,indicatoron=0,text="3",width=2,variable=number,value=3,command=add,bg="lightgreen")
btn4=Radiobutton(window,indicatoron=0,text="4",width=2,variable=number,value=4,command=add,bg="lightgreen")
btn5=Radiobutton(window,indicatoron=0,text="5",width=2,variable=number,value=5,command=add,bg="lightgreen")
btn6=Radiobutton(window,indicatoron=0,text="6",width=2,variable=number,value=6,command=add,bg="lightgreen")
btn7=Radiobutton(window,indicatoron=0,text="7",width=2,variable=number,value=7,command=add,bg="lightgreen")
btn8=Radiobutton(window,indicatoron=0,text="8",width=2,variable=number,value=8,command=add,bg="lightgreen")
btn9=Radiobutton(window,indicatoron=0,text="9",width=2,variable=number,value=9,command=add,bg="lightgreen")
btn0=Radiobutton(window,indicatoron=0,text="0",width=2,variable=number,value=0,command=add,bg="lightgreen")

     
btn11=Radiobutton(window,indicatoron=0,width=2,text="+",variable=number,value=11,command=op,bg="lightblue")
btn12=Radiobutton(window,indicatoron=0,width=2,text="-",variable=number,value=12,command=op,bg="lightblue")
btn13=Radiobutton(window,indicatoron=0,width=2,text="*",variable=number,value=13,command=op,bg="lightblue")
btn14=Radiobutton(window,indicatoron=0,width=2,text="/",variable=number,value=14,command=op,bg="lightblue")

btn15=Radiobutton(window,indicatoron=0,width=2,text="=",variable=number,value=15,command=vyvod)
btn16=Radiobutton(window,indicatoron=0,width=2,text="C",variable=number,value=16,command=clean,bg="red")
btn17=Radiobutton(window,indicatoron=0,width=2,text="√",variable=number,value=17,command=koren,bg="lightblue")
btn18=Radiobutton(window,indicatoron=0,width=2,text="DL",variable=number,value=18,command=last_sim,bg="red")


btn1.grid(row=0, column=0)
btn2.grid(row=0, column=1)
btn3.grid(row=0, column=2)
btn4.grid(row=1, column=0)
btn5.grid(row=1, column=1)
btn6.grid(row=1, column=2)
btn7.grid(row=2, column=0)
btn8.grid(row=2, column=1)
btn9.grid(row=2, column=2)
btn0.grid(row=3, column=1)
btn11.grid(row=0, column=3)
btn12.grid(row=1, column=3)
btn13.grid(row=2, column=3)
btn14.grid(row=3, column=3)
btn15.grid(row=4, column=3)
btn16.grid(row=3, column=0)
btn17.grid(row=3, column=3)
btn18.grid(row=3, column=2)    


frame = Frame(master=window, height=1, borderwidth=5,bg="red")
frame.grid(row=4, column=0,columnspan=3)

label1 = Label(master=window, width=15, height=1,text="", bg="yellow")
label1.grid(row=4, column=0,columnspan=3,pady=10)

label2 = Label(master=window, width=15, height=1,text="", bg="yellow")
label2.grid(row=5, column=0,columnspan=6,sticky = W)

window.mainloop()


python
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    vlad9i2
    2022-05-16T06:08:35Z2022-05-16T06:08:35Z

    为什么这是不可能的?

    def last_sim():
        label1["text"] = label1["text"] [:-1]
        label2["text"] = label2["text"][:-1]
    
    • 0

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5