小编Vip*_*pul的帖子

在Python中进行懒惰评估

什么是Python中的懒惰评估?

一个网站说:

在Python 3.x中,range()函数返回一个特殊的范围对象,它根据需要计算列表的元素(延迟或延迟评估):

>>> r = range(10)
>>> print(r)
range(0, 10)
>>> print(r[3])
3
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

python lazy-evaluation python-3.x

43
推荐指数
3
解决办法
4万
查看次数

Python等式检查差异

假设我们想要在'a'和'b'都等于5时执行一些代码块.然后我们可以这样编写:

if a == 5 and b == 5:
    # do something
Run Code Online (Sandbox Code Playgroud)

但是几天前,我只是不由自主地写了一个类似的条件检查:

if a == b and b == 5:
    # do something 
Run Code Online (Sandbox Code Playgroud)

这让我想到,两者之间有什么区别吗?另外,还有另一种方式,

if a == b == 5:
    # do something
Run Code Online (Sandbox Code Playgroud)

是否存在任何差异,评估或执行过程或所花费的时间有何不同?还有哪一个更好或哪个更好?

它与传递性的概念有关吗?

python

41
推荐指数
4
解决办法
6万
查看次数

OpenCV putText()换行符号

我使用cv2.putText()在图像上绘制文本字符串.

我写的时候:

cv2.putText(img, "This is \n some text", (50,50), cv2.FONT_HERSHEY_SIMPLEX, 1, 2)
Run Code Online (Sandbox Code Playgroud)

图像上绘制的文字是:

This is ? some text

我期待文本在新行中打印,因为它\n是换行符的转义字符,但它会?在图像上绘制.

为什么会这样?难道我做错了什么 ?

python opencv

19
推荐指数
2
解决办法
2万
查看次数

使用opencv python进行颜色检测

我试图运行使用Python中的OpenCV编写一个脚本,使用网络摄像头追踪彩色对象(这里的对象是蓝色),这也是OpenCV的文档中提到这里

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while(1):

    # Take each frame
    _, frame = cap.read()

    # Convert BGR to HSV
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # define range of blue color in HSV
    lower_blue = np.array([110,50,50])
    upper_blue = np.array([130,255,255])

    # Threshold the HSV image to get only blue colors
    mask = cv2.inRange(hsv, lower_blue, upper_blue)

    # Bitwise-AND mask and original image
    res = cv2.bitwise_and(frame,frame, mask= mask)

    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    k = cv2.waitKey(5) & 0xFF
    if k == …
Run Code Online (Sandbox Code Playgroud)

python opencv

12
推荐指数
1
解决办法
2万
查看次数

Python OpenCV:Rubiks立方体解算器颜色提取

描述:

我正在使用Python和OpenCV解决rubiks cube.为此我试图提取立方体的所有颜色(单个立方体块),然后应用适当的算法(我设计的,没有问题).

问题:

假设我已经提取了立方体的所有颜色,我如何找到提取的立方体的位置.就像我怎么知道它是在上中下层还是它的角落 - 中间边缘的一块.

我做了什么:

这里我刚刚提取出黄色.

颜色提取后:

在此输入图像描述

原始图像

在此输入图像描述

代码

import numpy as np
import cv2
from cv2 import *

im = cv2.imread('v123.bmp')
im = cv2.bilateralFilter(im,9,75,75)
im = cv2.fastNlMeansDenoisingColored(im,None,10,10,7,21)
hsv_img = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)   # HSV image


COLOR_MIN = np.array([20, 100, 100],np.uint8)       # HSV color code lower and upper bounds
COLOR_MAX = np.array([30, 255, 255],np.uint8)       # color yellow 

frame_threshed = cv2.inRange(hsv_img, COLOR_MIN, COLOR_MAX)     # Thresholding image
imgray = frame_threshed
ret,thresh = cv2.threshold(frame_threshed,127,255,0)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
print type(contours)
for …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing

8
推荐指数
2
解决办法
4143
查看次数

如何使用Pygame将捕获的图像保存到磁盘

这是我的代码,它启动网络摄像头:

import pygame.camera
import pygame.image
import sys

pygame.camera.init()

cameras = pygame.camera.list_cameras()

print "Using camera %s ..." % cameras[0]

webcam = pygame.camera.Camera(cameras[0])

webcam.start()

# grab first frame
img = webcam.get_image()

WIDTH = img.get_width()
HEIGHT = img.get_height()

screen = pygame.display.set_mode( ( WIDTH, HEIGHT ) )
pygame.display.set_caption("pyGame Camera View")

while True :
    for e in pygame.event.get() :
        if e.type == pygame.QUIT :
            sys.exit()



    # draw frame
    screen.blit(img, (0,0))
    pygame.display.flip()
    # grab next frame    
    img = webcam.get_image()
Run Code Online (Sandbox Code Playgroud)

我想知道如何捕获图像并将其存储到当前目录.请提出所需的更改建议.

python pygame

7
推荐指数
1
解决办法
1万
查看次数

Python,Selenium:'元素不再附加到DOM'

我正在抓一个网站www.lipperleaders.com.我想提取新加坡的资金细节.我已成功实施下拉选择,并提取了提交选项后出现的第一页的内容.但是当我尝试转到下一页(通过使代码单击下一个按钮)时,我收到错误'Element is no longer attached to the DOM'.

我的代码大约有100行,但我可以大致了解代码的执行流程:

...                    # creating driver object and all the imports
def main():
    ...
    result = find_elements_by_tag_name('span')  
    ...
    driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
    main()
main()
Run Code Online (Sandbox Code Playgroud)

此代码适用于第1页,但main()在单击下一个按钮后再次调用时.在这个递归方法之前,我也试过把它放在一个循环中,然后也是同样的错误.

如果我写相同的代码,如:

# some code
result = find_elements_by_tag_name('span')  
driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
# some code
driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
.
.
Run Code Online (Sandbox Code Playgroud)

这段代码可以很好地处理下一页加载的任何错误,并执行之后编写的代码.但是我不能driver.find_element_by_id().click()为500页写相同的内容,即使我必须重复与每个页面相关的其余代码.这就是为什么我尝试循环或递归,但它不适合我.

请让我知道我的方法有什么问题.

python selenium web-crawler selenium-webdriver

4
推荐指数
1
解决办法
1万
查看次数

如何从python中的txt文件中逐行提取文本

我有一个这样的txt文件:

audi lamborghini
ferrari
pagani
Run Code Online (Sandbox Code Playgroud)

当我使用这段代码时:

with open("test.txt") as inp:
    data = set(inp.read().split())
Run Code Online (Sandbox Code Playgroud)

这给出了以下数据: ['pagani', 'lamborghini', 'ferrari', 'audi']

我想要的是从txt文件中提取文本,逐行输出数据

['audi lamborghini','ferrari','pagani']

怎么做到这一点?

python python-2.7

3
推荐指数
1
解决办法
4620
查看次数

Memoization python

什么是memoization,它是如何在python中使用的?以及它与递归的不同之处.在某个地方,我遇到了一个声明,为了减少递归程序或函数的执行时间,我们应该使用memoization而不是递归.例如:

def factorial( n ):
   if n <1:   # base case
       return 1
   else:
       return n * factorial( n - 1 )  # recursive call
Run Code Online (Sandbox Code Playgroud)

如果这是计算阶乘的递归函数,那么在使用memoization时会有什么变化?

python recursion memoization

1
推荐指数
1
解决办法
247
查看次数

C中的setvbuf()如何工作

有人可以解释我int setvbuf(FILE *stream, char *buffer, int mode, size_t size)C函数如何工作吗?

我认为它为文件流设置了一个缓冲区,并将数据存储在按大小块数据分配的缓冲区setvbufsize_t,对吗?当缓冲区已满时,将其刷新?

对不起,我是新来的

c

0
推荐指数
1
解决办法
2799
查看次数