Questions tagged «python»

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

15
如何展望Python生成器中的一个元素(预览)?
我不知道如何展望Python生成器中的一个元素。我一看就不见了。 这是我的意思: gen = iter([1,2,3]) next_value = gen.next() # okay, I looked forward and see that next_value = 1 # but now: list(gen) # is [2, 3] -- the first value is gone! 这是一个更真实的示例: gen = element_generator() if gen.next_value() == 'STOP': quit_application() else: process(gen.next()) 谁能帮我写一个生成器,让您向前看一个元素?
78 python  generator  peek 


5
Python / Matplotlib-有没有办法制作不连续的轴?
我正在尝试使用具有不连续x轴的pyplot创建一个图。通常的绘制方法是轴将具有以下内容: (值)---- // ----(后值) // //表示您正在跳过(值)和(后值)之间的所有内容。 我还没有找到任何这样的例子,所以我想知道是否有可能。我知道您可以合并不连续的数据,例如财务数据,但我想使轴上的跳跃更明确。目前,我只是在使用子图,但我真的很希望最终所有内容都在同一张图上。

18
求和数字
如果我想找到一个数字的总和,即: 输入: 932 输出:14,即(9 + 3 + 2) 最快的方法是什么? 我本能地做到了: sum(int(digit) for digit in str(number)) 我在网上找到了这个: sum(map(int, str(number))) 哪种方法最适合提高速度,还有其他方法甚至更快吗?
78 python  sum  digits 

4
Python中的字节数组
如何在Python中表示字节数组(如Java中的byte [])?我需要使用gevent通过电线发送它。 byte key[] = {0x13, 0x00, 0x00, 0x00, 0x08, 0x00};
78 python  byte  gevent 

13
具有太多参数的类:更好的设计策略?
我正在使用神经元模型。我正在设计的一个类是细胞类,它是神经元(连接在一起的几个隔室)的拓扑描述。它有很多参数,但是它们都是相关的,例如: 轴突节段数,根尖分叉,体长,体径,根尖长,分支随机性,分支长度等……总共约有15个参数! 我可以将所有这些设置为某个默认值,但我的类看起来有些疯狂,其中包含几行参数。这种事情也必须偶尔在其他人身上发生,是否有一些明显的更好的设计方法或者我做对了? 更新: 正如您中的一些人所要求的那样,我已经在该类的代码中附加了代码,您可以看到该类具有大量参数(> 15),但是它们都被使用,并且对于定义单元格的拓扑结构是必需的。本质上,问题在于它们创建的物理对象非常复杂。我已经附上了由此类产生的对象的图像表示。有经验的程序员将如何以不同的方式执行此操作,以避免定义中包含如此多的参数? class LayerV(__Cell): def __init__(self,somatic_dendrites=10,oblique_dendrites=10, somatic_bifibs=3,apical_bifibs=10,oblique_bifibs=3, L_sigma=0.0,apical_branch_prob=1.0, somatic_branch_prob=1.0,oblique_branch_prob=1.0, soma_L=30,soma_d=25,axon_segs=5,myelin_L=100, apical_sec1_L=200,oblique_sec1_L=40,somadend_sec1_L=60, ldecf=0.98): import random import math #make main the regions: axon=Axon(n_axon_seg=axon_segs) soma=Soma(diam=soma_d,length=soma_L) main_apical_dendrite=DendriticTree(bifibs= apical_bifibs,first_sec_L=apical_sec1_L, L_sigma=L_sigma,L_decrease_factor=ldecf, first_sec_d=9,branch_prob=apical_branch_prob) #make the somatic denrites somatic_dends=self.dendrite_list(num_dends=somatic_dendrites, bifibs=somatic_bifibs,first_sec_L=somadend_sec1_L, first_sec_d=1.5,L_sigma=L_sigma, branch_prob=somatic_branch_prob,L_decrease_factor=ldecf) #make oblique dendrites: oblique_dends=self.dendrite_list(num_dends=oblique_dendrites, bifibs=oblique_bifibs,first_sec_L=oblique_sec1_L, first_sec_d=1.5,L_sigma=L_sigma, branch_prob=oblique_branch_prob,L_decrease_factor=ldecf) #connect axon to soma: axon_section=axon.get_connecting_section() …

5
我想开始阅读Python源代码。我应该从哪里开始[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我想开始阅读Python源代码。 我的经验, 我非常了解Python和Java。我知道其他各种水平的语言,但是C / C + /都不是很好。我在大学里学习过C,但是从来没有对它进行过专业编程。 我阅读此代码的原因。 了解python的工作原理。 更好地学习C。 1对我来说比2更重要。 我该怎么办?
78 python  c 

6
从不同类别获取最新对象的Django查询
我有两个模型A和B。所有B对象都有一个对象的外键A。给定一组A对象,无论如何都可以使用ORM获得一组B对象,其中包含为每个A对象创建的最新对象。 这是一个简化的示例: class Bakery(models.Model): town = models.CharField(max_length=255) class Cake(models.Model): bakery = models.ForeignKey(Bakery, on_delete=models.CASCADE) baked_at = models.DateTimeField() 因此,我正在寻找一个查询,该查询返回在美国Anytown的每个面包店中烘焙的最新蛋糕。

6
如何在不指定清单但直接指定主机的情况下运行Ansible?
我想在Python中运行Ansible,而不通过(ANSIBLE_HOST)指定清单文件,而仅通过以下方式: ansible.run.Runner( module_name='ping', host='www.google.com' ) 我实际上可以轻松地在Fabric中执行此操作,但只是想知道如何在Python中执行此操作。另一方面,用于Python的Ansible API的文档还不是很完整。
78 python  ansible 

6
有没有办法否定返回变量的布尔值?
我有一个Django网站,其Item对象具有boolean属性active。我想做这样的事情将属性从False切换为True,反之亦然: def toggle_active(item_id): item = Item.objects.get(id=item_id) item.active = !item.active item.save() 该语法在许多基于C的语言中有效,但在Python中似乎无效。还有另一种方法可以不使用以下方法来执行此操作: if item.active: item.active = False else: item.active = True item.save() 原生pythonneg()方法似乎返回整数的取反,而不是布尔值的取反。 谢谢您的帮助。
78 python  django 

6
获取在python 2.7中执行代码块的时间
我想测量在Python程序中评估一块代码所花费的时间,可能在用户cpu时间,系统cpu时间和经过时间之间进行区分。 我知道该timeit模块,但是我有许多自写函数,在设置过程中传递它们并不是很容易。 我宁愿有一些可以使用的东西: #up to here I have done something.... start_counting() #or whatever command used to mark that I want to measure #the time elapsed in the next rows # code I want to evaluate user,system,elapsed = stop_counting() #or whatever command says: #stop the timer and return the times 用户和系统的CPU时间不是必需的(尽管我想测量它们),但是对于过去的时间,我希望能够执行类似的操作,而不是使用复杂的命令或模块。

4
与python列表混淆:它们是迭代器还是不是迭代器?
我正在研究Alex Marteli的《 Nutshell》中的Python,该书建议具有next()方法的任何对象都是(或至少可以用作)迭代器。它还建议大多数迭代器是通过对称为的方法的隐式或显式调用构建的iter。 阅读本书中的内容后,我感到有尝试的渴望。我启动了python 2.7.3解释器并执行以下操作: >>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> for number in range(0, 10): ... print x.next() 但是结果是这样的: Traceback (most recent call last): File "<stdin>", line 2, in <module> AttributeError: 'list' object has no attribute 'next' 在混乱中,我尝试通过研究x对象的结构,dir(x)并发现它具有一个__iter__功能对象。因此,我弄清楚了它可以用作迭代器,只要它支持该类型的接口即可。 因此,当我再次尝试时,这次稍有不同,尝试这样做: >>> _temp_iter …
78 python  list  iterator 

10
如何测试Python 3.4异步代码?
使用Python 3.4asyncio库编写代码的单元测试的最佳方法是什么?假设我要测试一个TCP客户端(SocketConnection): import asyncio import unittest class TestSocketConnection(unittest.TestCase): def setUp(self): self.mock_server = MockServer("localhost", 1337) self.socket_connection = SocketConnection("localhost", 1337) @asyncio.coroutine def test_sends_handshake_after_connect(self): yield from self.socket_connection.connect() self.assertTrue(self.mock_server.received_handshake()) 当使用默认测试运行程序运行此测试用例时,测试将始终成功,因为该方法仅执行到第一yield from条指令为止,然后在执行任何断言之前返回该指令。这导致测试始终成功。 是否有一个预构建的测试运行器能够处理这样的异步代码?

3
Python处理socket.error:[Errno 104]对等重置连接
当使用Python 2.7和urllib2从API检索数据时,出现错误[Errno 104] Connection reset by peer。是什么导致错误,如何处理错误,以使脚本不会崩溃? ticker.py def urlopen(url): response = None request = urllib2.Request(url=url) try: response = urllib2.urlopen(request).read() except urllib2.HTTPError as err: print "HTTPError: {} ({})".format(url, err.code) except urllib2.URLError as err: print "URLError: {} ({})".format(url, err.reason) except httplib.BadStatusLine as err: print "BadStatusLine: {}".format(url) return response def get_rate(from_currency="EUR", to_currency="USD"): …

2
在图上标记python数据点
我搜索了年龄(小时数,类似于年龄),以找到一个非常烦人的(看似基本的)问题的答案,并且由于找不到合适的问题,我发布了一个问题并对其进行回答,希望将为别人节省大量我在noobie绘图技能上花费的时间。 如果要使用python matplotlib标记绘图点 from matplotlib import pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) A = anyarray B = anyotherarray plt.plot(A,B) for i,j in zip(A,B): ax.annotate('%s)' %j, xy=(i,j), xytext=(30,0), textcoords='offset points') ax.annotate('(%s,' %i, xy=(i,j)) plt.grid() plt.show() 我知道xytext =(30,0)与textcoords一起使用,您使用这些30,0值来定位数据标签点,因此它位于0 y轴上,位于30 x轴上位于自己的小区域。 您需要同时绘制i和j的线,否则仅绘制x或y数据标签。 您会得到类似这样的信息(仅注意标签): 它不理想,仍然存在一些重叠-但总比没有好,这就是我所拥有的。

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.