假设我有一个RGB字符串(格式:#<2个十六进制数字> <2个十六进制数字> <2个十六进制数字>),如下所示:
"#00BBCC"
Run Code Online (Sandbox Code Playgroud)
而且我希望以比使用显而易见的方式更紧凑的方式匹配并捕获其<2个十六进制数字>元素:
"#\\([[:xdigit:]\\{2\\}]\\)\\([[:xdigit:]\\{2\\}]\\)\\([[:xdigit:]\\{2\\}]\\)"
Run Code Online (Sandbox Code Playgroud)
我试过了:
"#\\([[:xdigit:]]\\{2\\}\\)\\{3\\}"
Run Code Online (Sandbox Code Playgroud)
和:
"#\\(\\([[:xdigit:]]\\{2\\}\\)\\{3\\}\\)"
Run Code Online (Sandbox Code Playgroud)
但它们匹配的最多是第一个<2个十六进制数字>元素.
任何的想法?谢谢.
AFAIK,它应该是可能的。我知道convertImageMagick 使这项任务变得微不足道,但我不能使用 ImageMagick,因此我倾向于 Gimp(在 Windows 上)。
我已经尝试过这个 Guile 脚本:
(define (resize-image filename new-filename scale)
(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image)))
(width (gimp-image-width image))
(height (gimp-image-height image)))
(gimp-image-scale-full image (* width scale) (* height scale) INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable new-filename new-filename)
(gimp-image-delete image)))
Run Code Online (Sandbox Code Playgroud)
我运行的:
gimp-2.8 -i -b "(resize-image \"image.jpg\" \"image-small.jpg\" 0.5)" -b "(gimp-quit 0)"
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
(gimp-2.8:22244): LibGimpBase-WARNING **: gimp-2.8: gimp_wire_read(): error
(gimp-2.8:22244): LibGimpBase-WARNING **: gimp-2.8: gimp_wire_read(): error
batch command experienced an execution error: …Run Code Online (Sandbox Code Playgroud) 例如,可以在没有break(和没有continue或return)的情况下重写此代码吗?
import logging
for i, x in enumerate(x):
logging.info("Processing `x` n.%s...", i)
y = do_something(x)
if y == A:
logging.info("Doing something else...")
do_something_else(x)
elif y == B:
logging.info("Done.")
break
Run Code Online (Sandbox Code Playgroud)
编辑:由于有些人批评使用break和continue内部循环,我想知道Python是否允许编写for没有它们的循环.我会说Python不允许这样做(也许它会违背"一种方法"规则).
编辑2:评论者让我注意到return可以使用,但这也不是解决方案.
是否有一种惯用的方法来实现"一次方法",即:一种方法,其返回值仅在第一次调用时得到评估?类似于以下简化代码对返回值的作用x:
class X:
def __init__(self):
self._x = None
def x(self):
if not self._x:
self._x = some_expensive_call()
return self._x
Run Code Online (Sandbox Code Playgroud) 在 Ada 中,如何从第一个索引之后开始按任何索引遍历任何数组?“任何数组”是指空数组和索引也不是整数的数组。
编辑:如果需要初始条件来处理极端情况 - 例如:空数组 - 那很好。
编辑:指定“任何索引”而不仅仅是第二个。