关于python的文本框增删内容
代码思路以及想法在代码注释内,望资深老手帮助解答!
import ttkbootstrap as ttk
from ttkbootstrap.constants import *
import re
l_str='('
r_str=')'
hjfj1 = 'beautiful'
ckou0 = ttk.Window(
title='''单词测试''',
size=(500, 500), # 窗口的大小
position=(300, 100), # 窗口位置
resizable=(False, False), # 让窗口不可更改大小
alpha=0.91, # 窗口透明度
#iconphoto=r'res\at.ico'
)
showtag_text1 = ttk.Text(ckou0)
showtag_text1.place(x=0, y=0, width=300,height=50)
def a_hjfj1():#我需要第一次按下添加单词,第二次按下删除单词还有单词后边的逗号,且为唯一指定的,不然出现相似的单词会删错,但我不知道怎么实现
global hjfj1
ss=showtag_text1.get('1.0', END)
if hjfj1 not in ss:
showtag_text1.insert('insert', hjfj1)
showtag_text1.insert('insert', ',')
def b_hjfj1():#测试2,如果可以请合并到函数a_hjfj1()里
sss=showtag_text1.get('1.0', END)
if hjfj1 in sss:
ssss=sss.strip()
l_over = re.sub(rf'\b({hjfj1})\b', '', ssss)#这里是成功删除唯一指定的单词,但是逗号删不了
#l_over = re.sub(rf'\b({hjfj1},)\b', '', ssss) 可以看到我加了个逗号在{hjfj1}的后面。如果是普通的字符串那就能成功替换,但是这里无法替换,
print(l_over)
showtag_text1.delete('0.0', END)
showtag_text1.insert('insert', l_over.strip())
else:
print('没有该单词')
def hjfj1_add(): # add反义词是reduce
'''加权重函数'''
global hjfj1, l_str, r_str
try:
hjfj1_bt_text = showtag_text1.get('1.0', END)
l_over = re.sub(rf'\b({hjfj1})\b', f'{l_str}\\1{r_str}', hjfj1_bt_text)
showtag_text1.delete('0.0', END)
showtag_text1.insert('insert', l_over.strip())
except:
pass
def hjfj1_reduce():
'''减权重函数'''
global hjfj1, l_str, r_str
try:
hjfj1_bt_text = showtag_text1.get('1.0', END)
hjfj1_mix = l_str + hjfj1 + r_str
s = hjfj1_bt_text.index(hjfj1_mix)
l = list(hjfj1_bt_text) # 把字符串拆分为列表,列表里面全部是单个字母的字符
l1 = l
del l1[s]
del l1[s + len(hjfj1_mix) - 2]
ss = len(hjfj1_mix) + 1
l.insert(s + ss, '')
l_over = ''.join(l) # 删改完成列表后重新加入为字符串
l_over.strip()
showtag_text1.delete('0.0', END)
showtag_text1.insert('insert', l_over.strip())
except:
pass
ttk.Button(ckou0, text='美丽的', bootstyle=(WARNING, OUTLINE), command=a_hjfj1).place(x=35, y=105)
ttk.Button(ckou0, text='美丽的', bootstyle=(WARNING, OUTLINE), command=b_hjfj1).place(x=35, y=140)#这个只是测试,无需理会,这个能删除唯一指定的单词,但是删除不了单词后边的逗号
ttk.Button(ckou0, text='+', command=hjfj1_add, width=1.5).place(x=100.5, y=105) # 和按钮相差x85.5坐标
ttk.Button(ckou0, text='-', command=hjfj1_reduce, width=1.5).place(x=0, y=105) # 和按钮相差x15坐标
ckou0.mainloop()
不知道你这个问题是否已经解决, 如果还没有解决的话:(1).Rust 提供了与 Python 同样的安全性,任何变量不会被意外覆盖。但是,它用所有权(ownership)和借用(borrowing)解决了性能问题。根据 Stack Overflow Insights 的统计,Rust 也是过去几年来最受欢迎的编程语言。
(2).Go 对于 Python 这样的初学者来说很棒。它是如此简单,以至于维护代码更加容易了。有趣的是:Go 开发人员是市场上收入最高的程序员之一。
(3).Julia 是一门非常新的编程语言,可以与 Python 一较高下。它填补了大规模技术计算的空白:通常情况下,人们会使用 Python 或 Matlab,然后用 C++ 库来修补整个程序,这在大规模应用时是必需的。现在,人们可以使用 Julia,而不是同时使用两种编程语言。虽然市场上还有其他编程语言,Rust、Go 和 Julia 是修补了 Python 薄弱部分的编程语言。所有这些语言在未来的技术上表现出色,尤其是在人工智能领域。虽然它们的市场份额仍然很小,但从 Stack Overflow 标签的数量可以看出,它们的趋势都很明显:上升。
鉴于目前 Python 已无处不在的流行程度,这些新语言中的任何一门要想取代它,肯定要花上五年的时间,甚至终其“一生”。
究竟会是哪一门编程语言将取代 Python,是 Rust?Go?Julia?抑或是未来的一门新语言?现在还很难说。但是鉴于 Python 架构中的最基本的性能问题,这些语言中的一门将会不可避免地占据一席之地。