簡體   English   中英

Python引號取消器算法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM