我正在学习wxPython.在其中一个示例中,代码如下:
import wx
class App(wx.App):
def OnInit(self):
frame = wx.Frame(parent=None, title = 'bare')
frame.Show()
return True
app=App()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)
我注意到该类App没有构造函数,只有函数OnInit.据我所知,Python类是用__init__函数构造的.
那么,OnInit函数是针对特定的类吗?或者它是另一种类型的构造函数?
请原谅我的无知,因为我是新手.谢谢.
我正在尝试从一些教程中学习Python.这是我遇到的一个简单的例子,让我感到困惑.
>>> d={"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> d
{'pwd': 'secret', 'database': 'master', 'uid': 'sa', 'server': 'mpilgrim'}
>>> d.keys()
['pwd', 'database', 'uid', 'server']
>>> d.values()
['secret', 'master', 'sa', 'mpilgrim']
Run Code Online (Sandbox Code Playgroud)
正如您在我定义字典的第一行中所看到的,该项是字典"pwd":"secret"中的最后一个元素.但是,当我输出字典时,它成为第一个元素.字典的其余部分已经重新排序.
我可以知道为什么会这样吗?
如果我使用dict.keys()从字典中提取密钥并按照我认为的顺序迭代它,那会导致不匹配问题吗?
我正在尝试pyodbc使用以下代码运行一些存储过程并获取单个返回值:
conn = pyodbc.connect("driver={SQL Server};server=MyServer;database=MyDB;trusted_connection=true")
cursor = conn.cursor()
SQL_command = """
DECLARE @ret INT
EXEC @ret = [dbo].proc_mySP
@group= 0
, @description =?
SELECT @ret
"""
cursor.execute(SQL_command, description)
retValue = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)
而存储过程的框架如下:
-- SOME CODE
-- ......
-- EXEC another_sp
-- DECLARE @RET INT
-- SELECT @RET as retValue
-- ......
Run Code Online (Sandbox Code Playgroud)
上面的 sql 在 sql server 中运行良好,但是,当它被上面的 Python 代码调用时,它给出了错误消息:
pyodbc.ProgrammingError: ('24000', '[24000] [Microsoft][ODBC SQL Server Driver]无效的游标状态 (0) (SQLNumResultCols)')
我可以知道我的代码有什么问题吗?
非常感谢。
我在Python中有一个字典列表,如下所示:
d = [{feature_a:1, feature_b:'Jul', feature_c:100}, {feature_a:2, feature_b:'Jul', feature_c:150}, {feature_a:1, feature_b:'Mar', feature_c:110}, ...]
Run Code Online (Sandbox Code Playgroud)
我想实现的是保持feature_a,_b和_c独特的.
例如,如果我们有3项具有相同feature_a和_b,但有3个不同的值feature_c 100,100,150,则操作之后,它应该是100和150.
我怎样才能做到这一点?
================================================== ==============更新:
好的,感谢Anand的出色答案,它完美无缺.但是,我还有一个问题.
假设我们有一个新的feature_d,字典看起来像:
d = [{feature_a:1, feature_b:'Jul', feature_c:100, feature_d:'A'}, {feature_a:2, feature_b:'Jul', feature_c:150, feature_d: 'B'}, {feature_a:1, feature_b:'Mar', feature_c:110, feature_d:'F'}, ...]
Run Code Online (Sandbox Code Playgroud)
我只想重复数据删除feature_a,_b并且_c,但是离开feature_d了.我怎样才能做到这一点?
非常感谢.
我在PyCharm中有一个Python包,它们的执行方式如下:
python -m mypackage
Run Code Online (Sandbox Code Playgroud)
但是,随着代码越来越大,我需要跟踪数据更改,因此我需要一步一步地完成.我试图将其作为脚本进行调试,但是PyCharm通过弹出值错误阻止了我:
ValueError:在非包中尝试相对导入
我必须保留这些相对导入,因为它们也被编写为Python包.
任何人都可以教我如何在PyCharm5中做到这一点?
非常感谢.
我有几个 .csv 文件,我想将它们作为电子表格写入一个 .xlsx 文件。
我已使用以下代码将这些 .csv 文件加载到 Pandas.DataFrame 中:
df1 = pandas.read_csv('my_file1.csv')
df2 = pandas.read_csv('my_file2.csv')
......
df5 = pandas.read_csv('my_file5.csv')
Run Code Online (Sandbox Code Playgroud)
但是我在 Pandas 中找不到任何可以将这些 DataFrame 作为单独的电子表格写入一个 .xlsx 文件的函数。
谁能帮我这个?
我正在尝试以高精度生成一系列双随机数。例如,0.856365621(十进制后有 9 位)。
我从互联网上找到了一些方法,但是,它们确实生成了双随机数,但是精度没有我要求的那么好(小数点后只有 6 位)。
因此,我可以知道如何实现我的目标吗?
我试图创建一个数据库使用pyodbc,但是,我发现它似乎是矛盾的,因为pyodbc需要首先连接到数据库,并且新的数据库是在链接的数据库中创建的.如果我错了,请纠正我.
在我的例子中,我使用以下代码来创建一个新的数据库
conn = pyodbc.connect("driver={SQL Server};server= serverName; database=databaseName; trusted_connection=true")
cursor = conn.cursor()
sqlcommand = """
CREATE DATABASE ['+ @IndexDBName +'] ON PRIMARY
( NAME = N'''+ @IndexDBName+''', FILENAME = N''' + @mdfFileName + ''' , SIZE = 4000KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'''+ @IndexDBName+'_log'', FILENAME = N''' + @ldfFileName + ''' , SIZE = 1024KB , MAXSIZE = 100GB , FILEGROWTH = 10%)'
"""
cursor.execute(sqlcommand)
cursor.commit()
conn.commit()
Run Code Online (Sandbox Code Playgroud)
上面的代码没有错误,但是没有创建数据库.
那么如何使用pyodbc创建数据库呢? …
我使用PyODBC来备份我的数据库,使用以下代码:
SQL_command = """
BACKUP DATABASE [MyDatabase]
TO DISK = N'D:\MSSQL\BACKUP\MyDatabase_20141212.bak' WITH
NOFORMAT
, NOINIT
, NAME = N'MyDatabase_20141212'
, SKIP
, REWIND
, NOUNLOAD
, STATS = 10
"""
conn.cursor.execute(SQL_command)
conn.cursor.commit()
Run Code Online (Sandbox Code Playgroud)
上面的代码给我一个错误信息:
pyodbc.ProgrammingError:
('42000','[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法在事务中执行备份或还原操作.(3021)(SQLExecDirectW);
[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server] BACKUP DATABASE异常终止.(3013)')
我试图在SQL Server中运行SQL代码,它工作正常.
我可以知道我的代码有什么问题吗?
非常感谢.
我正在尝试用Python打开一个excel文件来显示满足其中的数据,就像我们用鼠标双击它一样.
我已经搜索了一段时间,但似乎所有页面都在谈论如何使用代码读取和编写excel文件,而不是向用户显示内容.
那么,我的问题有什么解决方案吗?
非常感谢.