Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。




5
Python中最短的数独求解器-它如何工作?
我在玩我自己的Sudoku求解器时,遇到以下问题时正在寻找一些指向快速好设计的指针: def r(a):i=a.find('0');~i or exit(a);[m in[(i-j)%9*(i/9^j/9)*(i/27^j/27|i%9/3^j%9/3)or a[j]for j in range(81)]or r(a[:i]+m+a[i+1:])for m in'%d'%5**18] from sys import*;r(argv[1]) 我自己的实现以与解决数独相同的方式解决数独问题,但是这种神秘算法如何​​工作? http://scottkirkwood.blogspot.com/2006/07/shortest-sudoku-solver-in-python.html
81 python  algorithm 

6
为什么corrcoef返回矩阵?
对我来说,np.corrcoef返回一个矩阵似乎很奇怪。 correlation1 = corrcoef(Strategy1Returns,Strategy2Returns) [[ 1. -0.99598935] [-0.99598935 1. ]] 有谁知道为什么会这样,以及是否有可能仅返回经典意义上的一个值?
81 python  math  numpy 


7
是否可以在多行中中断长函数名?
我们的开发团队使用PEP8棉短绒,其最大行长为80个字符。 当我用python编写单元测试时,我喜欢使用描述性的方法名称来描述每个测试的功能。但是,这经常导致我超出字符数限制。 这是一个太长的函数示例... class ClientConnectionTest(unittest.TestCase): def test_that_client_event_listener_receives_connection_refused_error_without_server(self): self.given_server_is_offline() self.given_client_connection() self.when_client_connection_starts() self.then_client_receives_connection_refused_error() 我的选择: 您可以编写较短的方法名称! 我知道,但是我不想失去测试名称的描述性。 您可以在每个测试上方写多行注释,而不必使用长名称! 这是一个不错的主意,但是当我在IDE(PyCharm)中运行测试时,我将看不到测试名称。 也许您可以使用反斜杠(逻辑行连续字符)继续行。 不幸的是,如Dan的回答中所述,这不是Python中的选项。 您可以停止整理测试。 从某些方面讲这很有道理,但是鼓励使用格式正确的测试套件是一件很好的事情。 您可以增加行长限制。 我们的团队喜欢有限制,因为它有助于使代码在狭窄的显示器上保持可读性,因此这不是最佳选择。 您可以test从方法开始时删除。 这不是一个选择。Python的测试运行程序需要所有测试方法开始,test否则它将无法使用它们。 编辑:有些测试运行程序允许您在搜索测试函数时指定正则表达式,尽管我不愿意这样做,因为这是每个在项目上工作的人的额外设置。 您可以将EventListener分为自己的类并分别进行测试。 事件监听器是在其自己的类(和测试)。它只是一个由ClientConnection中发生的事件触发的接口。这种建议似乎有很好的意图,但方向错误,无助于回答最初的问题。 您可以使用像Behave这样的BDD框架。它是为表达性测试而设计的。 的确如此,我希望将来能使用更多的这些。尽管我仍然想知道如何将函数名称跨行分割。 最终... Python中有没有一种方法可以将长函数声明分成多行? 例如... def test_that_client_event_listener_receives_ connection_refused_error_without_server(self): self.given_server_is_offline() self.given_client_connection() self.when_client_connection_starts() self.then_client_receives_connection_refused_error() 还是我必须咬一口子并自己缩短子弹?
81 python 



3
如何在两个具有重组文本的链接中具有相同的文本?
这是我想做的: 1. `link <http://www.google.com>`__ 2. `link <http://www.yahoo.com>`__ 获得: <ol> <li><a href="http://www.google.com">link</a></li> <li><a href="http://www.yahoo.com">link</a></li> </ol> 上下文是出版物的列表,我希望所有出版物的末尾都有一个标记为“ DOI”的链接。 但是,这似乎失败了: <string>:3: (WARNING/2) Duplicate explicit target name: "doi". 确切的错误似乎取决于我使用的docutils的版本,但是它们都失败了。 有没有一种方法可以在重组文本中生成具有相同文本的多个链接?

8
可读地打印出按键排序的python dict()
我想使用PrettyPrinter将python字典打印到一个文件中(以提高可读性),但是要使字典按输出文件中的键排序,以进一步提高可读性。所以: mydict = {'a':1, 'b':2, 'c':3} pprint(mydict) 当前打印到 {'b':2, 'c':3, 'a':1} 我想使用PrettyPrint字典,但要按键将其打印出来。 {'a':1, 'b':2, 'c':3} 做这个的最好方式是什么?
81 python 

4
使用Cython编译主要的Python程序
我有一个Python2.6程序,可以使用Cython加载编译为.so文件的Python模块。我使用Cython将.py模块编译为.so文件,并且一切正常。 这是我与Cython一起使用的setup.py文件: from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext ext_modules = [ Extension("ldap", ["ldap.pyx"]), Extension("checker", ["checker.pyx"]), Extension("finder", ["finder.pyx"]), Extension("utils", ["utils.pyx"]), ] setup( name = 'bchecker', cmdclass = {'build_ext': build_ext}, ext_modules = ext_modules ) 因此,我知道我可以使用Cython编译Python模块(我想Cython会从我的Python文件创建“ C”文件,然后对其进行编译),但是我可以将我的主Python程序编译为可以在Linux平台上执行的程序吗?如果是这样,将不胜感激Cython命令行示例。谢谢。
81 python  cython 

9
如何使用python查找真实的用户主目录?
我看到,如果我们更改HOME(linux)或USERPROFILE(windows)环境变量并运行python脚本,当我尝试使用os.environ ['HOME'] os.exp时,它将作为用户主目录返回新值。 有什么方法可以在不依赖环境变量的情况下找到真实的用户主目录? 编辑: 这是一种通过阅读注册表http://mail.python.org/pipermail/python-win32/2008-January/006677.html在Windows中查找userhome的方法。 编辑: 一种使用pywin32查找Windows Home的方法, from win32com.shell import shell,shellcon home = shell.SHGetFolderPath(0, shellcon.CSIDL_PROFILE, None, 0)


7
对于一组自动化测试,只运行一次setUp
我的Python版本是2.6。 我只想执行一次test setUp方法,因为我在那里执行了所有测试所需的操作。 我的想法是创建一个布尔变量,该变量在第一次执行后将设置为“ true”,然后禁用对setup方法的多个调用。 class mySelTest(unittest.TestCase): setup_done = False def setUp(self): print str(self.setup_done) if self.setup_done: return self.setup_done = True print str(self.setup_done) 输出: False True --- Test 1 --- False True --- Test 2 --- 为什么这不起作用?我有想念吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.