[英]Python quotation mark canceler algorithm
i = 1
def textconverter(t,color='black'):
#Magically change all quotation marks (') to (\')
cwprint(t,color)
def cwprint(t,color='black'):
global i
exec('label%d = Label(cw,text=\''%i+t+'\',fg=color).grid(row='+str(i)+')')
i += 1
textconverter('test')
我正在构建一个小型聊天程序来试验 Tkinter 和套接字库,但是我遇到了这个问题:我想使用标签在屏幕上打印一个值(用户发送的文本)。
一切正常,直到用户输入包含引号的字符串。 例如:“不要那样做”
Python 会认为字符串是 'Don' 并且不识别 't do that' 部分。 有没有什么办法解决这一问题?
谢谢
顺便说一句:cwprint 代表在聊天窗口上打印
好的,我们在这里遇到了一个非常出色的 XY 问题。 不要使用exec
创建顺序变量名称。 改用列表:
i = 1
def cwprint(t,labels,color='black'):
global i
text = '{} {}'.format(i, t)
labels.append (Label(cw,text=text,fg=color).grid(row=i))
i += 1
labels = []
cwprint ('Hello', labels)
cwprint ('World', labels)
不需要exec
或字符串转义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.