#!/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 了解不多。有人知道如何在 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 循环(无功能)来做到这一点。
我正在使用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) 有人知道为什么在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) 我想用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) 我和一位同事刚刚使用 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 中忽略表达式中的前导和尾随空白段落意味着该空格实际上应该被忽略。
为什么空格字符会导致错误,其背后的原因是什么?
我不应该能够调用实例化对象的私有方法.我想知道为什么下面的代码有效.
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这样的静态方法访问类的非静态成员,如本例所示?
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()会改变输出值?我编写第二个函数只是为了与第一个函数进行比较.对不起,如果这造成了混乱.
首先,如果您认为这不是最佳实践,我很乐意在评论中讨论这一点。
我的问题如下,我尝试根据用户输入查找文件。如果找不到该文件,我会得到一个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)。但我希望有一个更优雅的解决方案,因为通常不鼓励在打开之前检查文件是否存在。
在 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) python ×7
python-3.x ×3
java ×2
angular ×1
core ×1
exception ×1
f-string ×1
factorial ×1
imshow ×1
javascript ×1
loops ×1
opencv ×1
performance ×1
python-2.7 ×1
rxjs ×1
string ×1
try-except ×1
typescript ×1
while-loop ×1