社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

BoarGules

BoarGules 最近回复了
4 年前
回复了 BoarGules 创建的主题 » Pycharm未导入标准库

如果您没有收到错误消息,并且您已经向我们展示了您的整个程序,那么您的问题是您期望的 time.asctime() 以其在空闲时的方式自行产生输出。 但要在PyCharm运行的程序中获得相同的效果,您需要 print(time.asctime()) . 要让PyCharm执行IDLE在本例中所做的操作,您需要让PyCharm打开一个Python控制台。

6 年前
回复了 BoarGules 创建的主题 » 用python格式化html

格式字符串中有两个错误。正如U9 Forward所指出的,第一个是:

</html> % (titles[0], titles[1], titles[2], titles[3], titles[4])"""

这个 % 是一个插值 操作人员 所以它得走了 之间 字符串和数据:

</html>""" % (titles[0], titles[1], titles[2], titles[3], titles[4])

第二个错误,只有在您修复了那个错误之后,才明显地出现在这里:

<table width="100%" height="100%" border="5px">

当你使用 % 运算符,字符 % 变得特别,所以 %s 做你想做的事。但当这种情况发生时, "100%" 这是不合法的,因为,正如错误消息告诉你的,它把 unsupported format character '"' (0x22) at index 237 . 把光标放在字符串的开头并按右箭头237次,就可以在不到一分钟的时间内找到答案。

在这种情况下, % 你想留下来 % 必须加倍:

<table width="100%%" height="100%%" border="5px">

给出

html_text = '''<html>
<head>
    <style type="text/css">
        table { border-collapse: collapse;}
        td { text-align: center; border: 5px solid #ff0000; border-style: dashed; font-size: 30px; }
    </style>
</head>
<body>
    <table width="100%%" height="100%%" border="5px">
        <tr>
            <td>%s</td>
        </tr>
        <tr>
            <td>%s</td>
        </tr>
        <tr>
            <td>%s</td>
        </tr>
        <tr>
            <td>%s</td>
        </tr>
        <tr>
            <td>%s</td>
        </tr>
    </table>
</body>
</html>''' % (titles[0], titles[1], titles[2], titles[3], titles[4])

但最根本的问题是python % -字符串是一种格式化迷你语言,而html是一种格式化语言,因此像这样构造html意味着您同时使用两种语言编程。这种双重思考让一些有经验的程序员大吃一惊,但我们其他人更乐于将关注点分离开来,一次只处理一种语言。而不是 % -字符串,考虑使用 lxml 来构造你的html。有更多的学习曲线(由优秀的 tutorial )但是您的代码将更易于编写和维护,并且 LXML 将确保HTML没有语法错误。

6 年前
回复了 BoarGules 创建的主题 » wxpython-如何为网格的列设置编辑器

其他两个答案中的方法是创建数据类型,将编辑器与数据类型关联,然后将数据类型与列关联。如果有多个具有相同数据类型的列,那么将编辑器与列号分离是一个好主意,因此这些解决方案可能是最好的通用方法。

但是我想要一种更简单的方法,将编辑器与特定列相关联,因为在我的应用程序中,每个列都是不同的数据类型。跨列共享数据类型毫无意义。所以这个答案更符合最初的问题。

这一切都围绕着一个名称混乱的类 wx.grid.GridCellAttr . 可以原谅您假设name元素 Attr 基本上是指对齐和颜色,因为这就是它的含义,例如, wx.TextAttr . 这个类中最清晰的构造器是 GridCellAttr(colText, colBack, font, hAlign, vAlign) 这再次表明 阿特尔 是关于排列和颜色。

但是这个班 wx.grid.grid单元格属性 实际上是一个非常通用的单元格属性描述符类,有超过30种方法用于设置和获取对齐和颜色(如预期的那样),但也有(除其他外)大小、读/写模式、渲染器和 编辑 .

因此,为网格的列设置编辑器的方法是

my_col_property_settings = wx.grid.GridCellAttr()
my_col_property_settings.SetEditor(MyColumnSpecificEditor())
my_col_property_settings.SetAlignment(hAlign=wx.ALIGN_CENTRE, vAlign=wx.ALIGN_CENTRE)
# ... etc ...
self.mygrid.SetColAttr(1, my_col_property_settings)

但如果要为两列设置相同的编辑器,请不要调用 SetColAttr() GridCellAttr ,因为这样做会在程序关闭时出现引用计数错误。相反,做

self.mygrid.SetColAttr(1, my_col_property_settings.Clone())
self.mygrid.SetColAttr(2, my_col_property_settings.Clone())
6 年前
回复了 BoarGules 创建的主题 » PyCharm函数MyFunction,位于0x000001EBF0C97B70

您正在打印 功能 . 但你想做的是 呼叫 函数并打印 它返回的值 :

print(hello("Alice"))

但在你把线移开之前不要这样做。

hello('Alice')    # <----- argumento

从函数。它不属于函数内部,而是属于外部。如果你打电话 hello() 里面有那条线 氦() 你将得到无限递归。