Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将While循环与else语句一起使用两次_Python_Python 3.x - Fatal编程技术网

Python 将While循环与else语句一起使用两次

Python 将While循环与else语句一起使用两次,python,python-3.x,Python,Python 3.x,我找不到与我的问题类似的东西 我目前正在开发线程器函数 我有两个队列,一个r\u队列用于常规队列,另一个p\u队列用于优先级 def _threader(self): # Thread Handler while self.active: while self.p_queue.empty() and self.r_queue.qsize() > 0: # Regular Queue queue_dict = s

我找不到与我的问题类似的东西

我目前正在开发线程器函数

我有两个队列,一个
r\u队列
用于常规队列,另一个
p\u队列
用于优先级

def _threader(self):
    # Thread Handler
    while self.active:
        while self.p_queue.empty() and self.r_queue.qsize() > 0:
            # Regular Queue
            queue_dict = self.r_queue.get()
            self._complete_task(queue_dict, prioritized=False)

        (else?) while self.p_queue.qsize() > 0:
            # Prioritized Queue
            queue_dict = self.p_queue.get()
            self._complete_task(queue_dict, prioritized=True)
我在这里如何正确使用(其他?)选项


编辑:线程器背后的思想是,它从队列接收数据并完成函数。第一个while是它对优先级队列进行优先级排序,并且仅在它有大小时调用。(当它不存在时无法获得某些内容)我的问题是,我需要为优先级队列添加一个while循环,该行带有
(else?)while self.p_queue.qsize()>0:
,但我不能直接使用else。如果我愿意,如果队列大小不存在,它会不断选择“Nothing”。类似于
elif while self.p_queue.qsize()>0的东西,但它不存在。

您不需要内部
while
循环:

def _threader(self):
    # Thread Handler
    while self.active:
        if self.p_queue.qsize() > 0:
            # Prioritized Queue
            queue_dict = self.p_queue.get()
            self._complete_task(queue_dict, prioritized=True)
        elif self.r_queue.qsize() > 0:
            # Regular Queue
            queue_dict = self.r_queue.get()
            self._complete_task(queue_dict, prioritized=False)

你能用通俗易懂的语言描述一下它应该如何工作吗?
self.p_queue.empty()和self.r_queue.qsize()>0
应该如何工作?完全不清楚你期望
其他的
做什么,或者你为什么需要它。@jsmolka他们是两个不同的队列,所以它可以工作。@Aran Fey哇,读了
p
r