python - 如何用这个“hello='23'”代替这个“hello=\'23\'”
问题描述
我正在尝试执行此代码
vi = "--get"
x = "hello='"
cm = "'"
c = '='
v = '"'
w = "Hello, world"
num = raw_input()
hi = (vi+c+v+x+num+cm+v)
print (hi,w)
import pygtk
pygtk.require('2.0')
import gtk
clipboard = gtk.clipboard_get()
clipboard.set_text(str(vi+c+v+x+num+cm+v))
clipboard.store()
当我打印时,用这个\'\'打印数字
我怎样才能避免这种情况
解决方案
这是因为为了表示元组,(hi,w)
python 需要对内部单引号进行转义。这是因为 python 选择用单引号将 hi 括起来,因为它找到的第一个引号hi
是双引号。
不过,您不需要关心这一点,因为:
vi = "--get"
x = "hello='"
cm = "'"
c = '='
v = '"'
w = "Hello, world"
num = "23"
hi = (vi+c+v+x+num+cm+v)
print (hi,w)
print (hi,w)[0]
给你:
('--get="hello=\'23\'"', 'Hello, world')
--get="hello='23'"
('--get="hello=\'23\'"', 'Hello, world')
是python如何将元组表示为字符串。这并不意味着元组的第一个元素作为其中的转义序列。 print (hi,w)[0]
给你你所期望的--get="hello='23'"
print '({},{})'.format(hi,w)
给你:
(--get="hello='23'",Hello, world)
请参阅此工作示例:https ://paiza.io/projects/olg0_zf7G3SRsbXcGjSjXQ
要点
(hi,w)
是类的一个实例tuple
。之所以print (hi,w)
给你,('--get="hello=\'23\'"', 'Hello, world')
是因为那tuple.__str__()
是设计要做的。
为了说明这一点,让子类元组和覆盖__str__()
以提供您需要的输出。
class MyTuple(tuple):
def __str__(self):
return '({},{})'.format(*self)
foo = MyTuple((hi,w))
print foo
输出:
(--get="hello='23'",Hello, world)
覆盖元组可能不是一个好主意,但它适用于这个演示。
推荐阅读
- javascript - JavaScript 通过按钮删除 li 元素
- django - 如何做一个实时搜索表单 ModelChoiceField
- database - 我应该采用哪种方法来设计后端系统中的表格?
- javascript - _this.listCatModel.push 不是函数
- java - 使用毕加索库时无法解析方法 get()
- javascript - Vue.js 监视组件/应用程序之外的 DOM 元素属性
- python - x 为 x 的多变量
- android - viewpager 的标题被隐藏
- sml - 在 SML 中使用二进制映射数据结构的问题
- psql - 如何登录用户下的数据库?