小编khe*_*ood的帖子

如何在python中给字符串添加前缀和后缀

#!/usr/bin/python
import sys,re
import subprocess

def funa():
        a = str(raw_input('Enter your choice [PRIMARY|SECONDARY]: ')).upper().strip()
        p = re.compile(r'.*'+a+'.*')
        result = p.findall(a)
        str1 = ''.join(result)
        print str1
funa()
Run Code Online (Sandbox Code Playgroud)

我在 test.py 文件中有上面的代码,当我运行此代码并选择 SECONDARY 时,我得到的输出 SECONDARY 作为字符串:

[oracle@localhost oracle]$ ./test.py Enter your choice [PRIMARY|SECONDARY]: SECONDARY SECONDARY

我想添加前缀“^”和后缀“$”以添加到我的输出中。这应该只是一个字符串。意味着我想得到的输出为:

^中学$

请让我知道如何实现这一目标。

python

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

用while循环python写阶乘

我是新手,对 Python 了解不多。有人知道如何在 while 循环中编写阶乘吗?

我可以在 if / elif else 语句中实现:

num = ...
factorial = 1

if num < 0:
   print("must be positive")
elif num == 0:
   print("factorial = 1")
else:
   for i in range(1,num + 1):
       factorial = factorial*i
   print(num, factorial)
Run Code Online (Sandbox Code Playgroud)

但我想用一个 while 循环(无功能)来做到这一点。

python loops factorial while-loop

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

在 Python 中优化大图像的内存使用(Pillow)

我正在使用pillow和处理相当大的图像(至少 10500 x 10500 像素),这反过来会占用相当多的内存。我想知道是否有办法降低它并尝试使用压缩图像来加载(这将是〜400kb而不是420mb),而不是直接创建一个新的..但内存使用量是相同的:

Line #    Mem usage    Increment   Line Contents
================================================
   151   35.969 MiB    0.742 MiB       base = Image.open("C:/Users/Nick/Desktop/transparent.png")
   152  456.992 MiB  421.023 MiB       base.load()
   155  877.641 MiB  420.648 MiB       base_hallway = Image.new("RGBA", (map_width_px, map_height_px))
Run Code Online (Sandbox Code Playgroud)

我还尝试仅对第二张图像使用 jpg 或Image.new()RGB,但放弃 alpha 通道也不起作用。

Line #    Mem usage    Increment   Line Contents
================================================
   151   36.309 MiB    0.766 MiB       base = Image.open("C:/Users/Nick/Desktop/transparent.png")
   152  457.359 MiB  421.051 MiB       base.load()
   156  457.367 MiB    0.008 MiB       base_hallway = Image.open("C:/Users/Nick/Desktop/blackjpg.jpg")
   157  878.312 MiB  420.945 …
Run Code Online (Sandbox Code Playgroud)

python python-imaging-library python-3.x

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

Java 11字符串连接性能与Java 8

有人知道为什么在Java 8和Java 11上运行此代码时会得到如此不同的性能吗?

在不使用任何运行时标志的情况下,与Java 8相比,此代码在Java 11下的运行速度明显慢得多。

import java.util.Date;

public class PerformanceExperiment {
    public static volatile String s = "";

    public static void main(String[] args)
    {                         
        System.out.println("Starting performance test");
        String s1 = "STRING ONE";
        String s2 = "STRING TWO";
        long now1 = (new Date()).getTime();
        for (long i = 0; i < 1_000_000_00; i++)
        {
            s = "abc " + s1 + " def " + s2;
        }
        long now2 = (new Date()).getTime();
        System.out.println("initial block took " + (now2 - now1) + …
Run Code Online (Sandbox Code Playgroud)

java string performance concatenation

4
推荐指数
2
解决办法
827
查看次数

类型错误:不支持 mat 数据类型 = 0

我想用cv2.imshow("Otsu img", binary)而不是plt.imshow( binary)

我收到错误

完整代码:

import matplotlib.pyplot as plt
from skimage import io
from skimage.filters.rank import entropy
from skimage.morphology import disk
import numpy as np
from skimage.filters import threshold_otsu
import cv2

img = io.imread("scratch.jpg")
entropy_img = entropy(img, disk(10))
thresh = threshold_otsu(entropy_img)

binary = entropy_img <= thresh



cv2.imshow("Otsu img", binary)

cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

如何修复这个错误?

 cv2.imshow("Otsu img", binary)
TypeError: mat data type = 0 is not supported
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing python-2.7 imshow

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

f 字符串中的空格导致 ValueError:格式说明符无效

我和一位同事刚刚使用 f 字符串偶然发现了一个有趣的问题。这是一个最小的例子:

>>> f"{ 42:x}"
'2a'
Run Code Online (Sandbox Code Playgroud)

在十六进制类型后面写入空格会导致ValueError

>>> f"{ 42:x }"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Invalid format specifier
Run Code Online (Sandbox Code Playgroud)

我理解PEP 498 中忽略表达式中的前导和尾随空白段落意味着该空格实际上应该被忽略。

为什么空格字符会导致错误,其背后的原因是什么?

python python-3.x f-string

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

为什么我可以调用私有方法?

我不应该能够调用实例化对象的私有方法.我想知道为什么下面的代码有效.

public class SimpleApp2 {
    /**
     * @param args
     */
    private int var1;

    public static void main(String[] args) {
        SimpleApp2 s = new SimpleApp2();
        s.method1(); // interesting?!
    }

    private void method1() {
        System.out.println("this is method1");
        this.method2(); // this is ok
        SimpleApp2 s2 = new SimpleApp2();
        s2.method2(); // interesting?!
        System.out.println(s2.var1); // interesting?!
    }

    private void method2() {
        this.var1 = 10;
        System.out.println("this is method2");
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道可以从类中访问私有方法.但是,如果类中的方法实例化同一个类的对象,那么范围规则是否应该应用于该实例化对象?

可以像main这样的静态方法访问类的非静态成员,如本例所示?

java core

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

为什么用不同的参数打印一个函数两次更改输出:python

def f(x, arr=[]):
    arr.append(x)
    return arr
print(f(1),f(2))

o/p: [1,2] [1,2]

def f(x, arr=[]):
    arr.append(x)
    return arr
print(f(1))
print(f(2))

o/p: [1]
     [1,2]
Run Code Online (Sandbox Code Playgroud)

为什么以不同方式调用函数f()会改变输出值?我编写第二个函数只是为了与第一个函数进行比较.对不起,如果这造成了混乱.

python

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

我可以在 except 子句中抛出自定义异常而不导致:“在处理...期间”

首先,如果您认为这不是最佳实践,我很乐意在评论中讨论这一点。

我的问题如下,我尝试根据用户输入查找文件。如果找不到该文件,我会得到一个FileNotFoundError. 这很好,但我想给出一个适当的例外,可以更好地描述问题。用户并不真正知道存在的文件决定某些事情是否可能。所以 aFileNotFoundError可能看起来不合适。所以我目前拥有的是:

try:
    x = get_file(...)
except FileNotFoundError as e:  # Unsupported version
    raise MyOwnException(f"Explaining the problem")
Run Code Online (Sandbox Code Playgroud)

上面的方法有效,但异常看起来像这样:

  • FileNotFoundError& 堆栈跟踪
  • “在处理上述异常期间,发生了另一个异常:”
  • MyOwnException& 堆栈跟踪

我愿意只拥有MyOwnException. 为了实现这一目标,我知道你可以这样做:

try:
    x = get_file(...)
except FileNotFoundError as e:  # Unsupported version
    file_not_found = True
if file_not_found:
    raise MyOwnException(f"Explaining the problem")
Run Code Online (Sandbox Code Playgroud)

我还可以使用 . 检查文件是否存在os.path.isfile(file_path)。但我希望有一个更优雅的解决方案,因为通常不鼓励在打开之前检查文件是否存在。

python exception python-3.x try-except

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

在 RxJS 中合并两个主题

在 RxJS 中,我怎样才能实现这一点:我有两个主题。我想要一个以这种方式组合它们的可观察量:当两者都发出值时,发出它们的最新值。然后,两者都需要至少再次发射一次,然后发射它们最新的发射值,等等。

两个科目:

1 ---------- 2 ----- 3 -- 4 ---------------- 5 ------ 6 -----------------

------- a ------------------ b ------ c --------------------- d --------
Run Code Online (Sandbox Code Playgroud)

可观察的目标:

------- 1a ----------------- 2b ----- 3c ------------------- 4d -------
Run Code Online (Sandbox Code Playgroud)

javascript rxjs typescript angular

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