我有一个只应该用Python 3运行的脚本.我想给出一个很好的错误消息,如果用户试图用Python 2.x运行它,不应该用python2运行这个脚本
我该怎么做呢?当我尝试检查Python版本时,它仍会抛出错误,因为Python在执行我的if条件之前解析整个文件.
如果可能的话,我宁愿不再制作另一个剧本.
我试图在C++(使用流)中的小数点后打印最多4位数.因此,如果数字在小数点后不需要4位数,我希望它只使用它实际需要的小数位数.
例子:
1.12345 -> 1.1234
1.0 -> 1
1.12 -> 1.12
1.12345789 -> 1.1234
123.123 -> 123.123
123.123456 -> 123.1234
Run Code Online (Sandbox Code Playgroud)
我试过std::setprecision(4)但是设置了有效位数并且在测试用例中失败了:
123.123456 gives 123.1
Run Code Online (Sandbox Code Playgroud)
我也尝试过std::fixed,std::setprecision(4)但即使不需要,也会在十进制后给出一个固定的位数:
1.0 gives 1.0000
Run Code Online (Sandbox Code Playgroud)
这似乎std::defaultfloat是我需要的,而不是固定的也不是指数的.但它似乎没有适当地打印小数点后的位数,只有有效数字的选项.
在multiprocessing.Pool我试图以相同的顺序显示我的打印.
from multiprocessing import Pool
import time
def func(arg):
time.sleep(0.001)
print(arg, end=" ")
proc_pool = Pool(4)
proc_pool.map(func, range(30))
Run Code Online (Sandbox Code Playgroud)
输出是:0 1 8 9 10 11 14 15 6 7 16 17 4 5 12 13 18 19 2 3或类似的.它不在订单中0 1 2 3 ...
我知道imap可以提供更好的订购......但它仍然不是我想要的.我可以覆盖打印功能,将其保存到一个变量中并立即打印出来 - 但我希望它们一完成就显示出来 - 而不是一切都完成.
我有一个项目中的一些代码似乎不起作用。
我正在尝试创建一个双端队列(结构体),它是类的静态成员。骨架/基本代码如下(我保留了所有数据类型 - my_typedef_fn 是通过 typedef-ing 函数指针获得的数据类型):
1.h文件:
class A {
struct Bstruct {
char * b_name;
my_typedef_fn b_func;
}
static std::deque<Bstruct> a_deque;
static void func();
}
Run Code Online (Sandbox Code Playgroud)
1.cpp文件:
std::deque<A::Bstruct> A::a_deque;
void A::func(char * name, my_typedef_fn fn) {
a_deque.push_front((Bstruct) {name, fn} ); // <<<< segfault !
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解 - .h 文件只是声明内容(像往常一样) - .cpp 中的第一行初始化静态成员 a_deque - 函数 func 使用 push_back 将内容添加到双端队列
但我在调用 push_front 的行出现分段错误(使用 gdb 发现了这一点)。
另外,当我在 push_front 之前打印 a_deque.size() 时,我在 SEGFAULT 之前得到 4294967264 当我使用 for 循环计算双端队列中的元素数量时:
int counter = 0 …Run Code Online (Sandbox Code Playgroud) 我有以下数据框df:
User | Datetime | amount | length
A | 2016-01-01 12:01 | 10 | 20
A | 2016-01-01 12:03 | 6 | 10
A | 2016-01-01 12:05 | 1 | 3
A | 2016-01-01 12:06 | 3 | 5
B | 2016-01-01 12:01 | 10 | 20
B | 2016-01-01 12:02 | 8 | 20
Run Code Online (Sandbox Code Playgroud)
我想有效地使用 pyspark 来聚合超过 5 分钟的时间窗口并进行一些计算 - 例如计算每 5 分钟时间窗口每次使用的平均数量和长度 - df 将如下所示:
User | Datetime | amount | length
A | 2016-01-01 …Run Code Online (Sandbox Code Playgroud) python ×3
c++ ×2
cout ×1
deque ×1
pandas ×1
pool ×1
printing ×1
pyspark ×1
pyspark-sql ×1
python-3.x ×1