【问题标题】:How to Modify a String in wx.StaticText?如何修改 wx.StaticText 中的字符串?
【发布时间】:2015-07-31 13:46:57
【问题描述】:

我有一个元组:('a',1)

当我使用 wx.StaticText 显示时,总是这样显示:('a',1)

如何让它显示如下:(a,1)?

注意:它必须是一个元组。出于某种原因,当我将字符串设置为元组时,它总是与引号一起记录。所以:

a = (str(hello),1)

如果你打印 a 你会得到:

>>>print a
('hello',1)

【问题讨论】:

  • 如果我也能去掉括号就好了。

标签: python string wxpython static-text


【解决方案1】:

不要直接传递元组对象,而是传递一个格式化的字符串:

>>> a = ('a', 1)

使用% operator

>>> '(%s, %s)' % a
'(a, 1)'

>>> '%s, %s' % a  # without parentheses
'a, 1'

使用str.format

>>> '({0[0]}, {0[1]})'.format(a)
'(a, 1)'
>>> '({}, {})'.format(*a)
'(a, 1)'

>>> '{0[0]}, {0[1]}'.format(a)   # without parentheses
'a, 1'
>>> '{}, {}'.format(*a)          # without parentheses
'a, 1'

【讨论】:

  • 有没有办法删除最后一部分的引号(# 不带括号)?
  • @YelloFour, ' 是为了让用户知道该对象是字符串对象。 ' 不包含在字符串本身中。试着打印一下,你就会明白我的意思了:print('{}, {}'.format(*a)) or print('%s, %s' % a)
  • 是的,这就是我的情况的问题,因为似乎 python 在其打印中具有某种功能可以删除这些引号,但是当您将它放在 wx.StaticText 中时,它没有与打印以保留引号。
  • 没关系,我只是尝试过它,它可以工作。非常感谢您的帮助:)
  • @YelloFour, ' '.join('(%s, %s)' % (s, n) for s, n in [['A',1],['B',2]])
猜你喜欢
  • 2020-01-20
  • 1970-01-01
  • 2011-03-25
  • 2014-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
相关资源
最近更新 更多