小编sdr*_*eam的帖子

如何在python中为指针分配NULL值?

我是C程序员.我是python的新手.在C中,当我们定义二叉树节点的结构时,我们为它的右边和左边的子节点分配NULL:

struct node 
{
    int val;  
    struct node *right ;  
    struct node *left ;  
};   
Run Code Online (Sandbox Code Playgroud)

在初始化节点时,我们写为:

val = some_value  
right = NULL;  
left = NULL;  
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:如何在Python中为节点的左右指针分配NULL值?

我们如何测试Python版本的NULL?在C中它将是:

if( ptr->right == NULL )
Run Code Online (Sandbox Code Playgroud)

谢谢!

python

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

如何在php中等待由proc_open()执行的进程?

请阅读此问题后,不要说它是复制的。我已经在网上搜索过,但没有一个解决方案适合我。

我正在做什么:->
我通过在本地主机上运行apache服务器来通过php获取源文件(比如.c)。我将该文件保存在“/code/”目录中,并使用proc_open( )在 php 中。现在我想等待主 php 脚本,直到“proc_open()”创建的进程终止,所以我使用“pcntl_waitpid()”。但我认为使用“pcntl_waitpid()”有问题,因为脚本在“pcntl_waitpid()”不执行之后。由“pcntl_waitpid()”创建的进程从“/code/input.txt”文件获取输入并将输出提供给“/code/output.txt”文件,因此为了重定向目的,我使用 proc_open() ,以便我可以轻松地重定向流。

我的机器配置:-
操作系统 -> Ubuntu 12.04 LTs
PHP 5.3.10
APACHE 2.2.22
在本地主机上运行

权限:-
/code -> 777
主要 php 文件所在的文件夹 -> 777 (我知道由于安全原因 777 不好,但由于我在本地服务器上运行脚本,所以我对这些权限没有问题。)

我想要什么:- 任何人都可以告诉我任何方法,以便我可以停止主 php 脚本,直到 proc-open() 创建的进程终止,或者是否有人可以告诉我其他方法来满足我的重定向要求?

这是代码的一部分:

$descriptors = array(
            2 => array("pipe","w")
        );




        $process = proc_open($cmd,$descriptors,$pipes,$code);

        sleep(2);

        if(is_resource($process))
        {
            $status = proc_get_status($process);
            $pid = $status ["pid"];

            echo getmypid()."<br />";


            echo $pid;

            if(pcntl_waitpid($pid,$child_status) == -1)
            {
                fclose($pipes[2]);
                proc_close($process);
                exit("Sorry!Unable to compile the source_file.\n");


            }


            while(!file_exists("/code/test"))
            {

                proc_close($process); …
Run Code Online (Sandbox Code Playgroud)

php

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

如何访问LazySeq值

我正在玩机智/小鸭图书馆.它是用clojure编写的,我以前没有clojure的经验.通过遵循其文档,我得到一个变量的值

({:dim :time, :body "20 minutes from now", :value {:type "value", :value "2016-08-03T10:50:56.000+05:30", :grain :second, :values ({:type "value", :value "2016-08-03T10:50:56.000+05:30", :grain :second})}, :start 21, :end 40})
Run Code Online (Sandbox Code Playgroud)

做了一些谷歌搜索后,我才知道,这是clojure.lang.LazySeq并开始用冒号记号(:)的关键字,而不是钥匙.我想访问value :values关键字的,我也读过关于clojure的基础知识,但是无法访问value :values关键字的.我希望必须有一种方法,通过写lazy_seq [:values],我得到它的价值.任何人都可以帮忙吗?

clojure lazy-sequences

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

解析字符串以在Clojure中以特定格式获取日期和时间

我刚开始玩机智/小鸭子。它是用Clojure编写的,我以前没有Clojure的经验。我需要将2016-08-14T19:45:48.000 + 05:30这样的字符串解析为2016年8月14日(星期日)1945hrs之类的格式。我在Internet上搜索并遇到了lib clj-time。经过很长时间的努力后,我遇到了这个线程,并认为rfc822是我的杯茶。因此,我使用了格式化程序rfc822,但它给了我一个例外:

java.lang.IllegalArgumentException: Invalid format: "2016-08-16T00:00:00.000+05:30"

这是我的代码:

(ns firstproj.core
  (:gen-class)
  (:require [duckling.core :as p])
  (:require [clj-time.format :as f]))

(defn -main
  "I don't do a whole lot."
  [x]
  (p/load! { :languages ["en"]})
  (def var_ (p/parse :en$core x [:time]))
  (def date_string "2016-08-14T19:45:48.000+05:30")
  (f/parse (f/formatters :rfc822) date_string))
Run Code Online (Sandbox Code Playgroud)

所以有人可以告诉我我在做什么错。或Clojure中的任何其他方式来获取我想要的日期时间格式。由于我对Clojure完全幼稚,因此请您详细回答,这将有助于我更好地理解这一点。谢谢。

clojure clj-time

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

为什么循环不能像Python中预期的那样打印?

我是python的新手.我在python中学习for循环的语法:

for var in list_name:  
    # do something
Run Code Online (Sandbox Code Playgroud)

我拿了一份清单:

list = [1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

我想将它的每个元素加倍,所以我运行一个循环:

for i in list :  
    index = list.index(i) 
    list[index] = 2*i  

print(list) 
Run Code Online (Sandbox Code Playgroud)

然后打印:

 [16,2,12,4,10,6,14,8,18] 
Run Code Online (Sandbox Code Playgroud)

我不知道它为什么这样打印?

python list

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

为什么我的程序进入无限循环?

我正在尝试编译和执行C,C++和Java代码作为Java文件的参数,然后检查生成的解决方案是否正确,因为大多数网站都在判断解决方案.请任何人都可以告诉我为什么我的代码会运行在无限循环中,file_name_output.txt中没有输出.我的其他所有文件都是正确的,因为我通过在终端上运行程序来测试它们.这是我的代码:

import java.io.*;
import java.util.Scanner;

class test
{
    public static void main(String args[])
    {
        String s=null,file_name,extension;
        int pos = args[0].lastIndexOf(".");

        extension = args[0].substring(pos+1);
        file_name = args[0].substring(0,pos);

        int lang = 0; //  1 -> c,c++ , 2 -> java


        try
        {   

            Process compile = null;

            switch(extension)
            {
                case "c"    :    compile = Runtime.getRuntime().exec("gcc -g "+ args[0] + " -o "+file_name+" -lm");
                            lang = 1;           
                            break;
                case "cpp"  :    compile = Runtime.getRuntime().exec("g++ -g "+ args[0] + " -o "+file_name);
                            lang …
Run Code Online (Sandbox Code Playgroud)

java

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

标签 统计

clojure ×2

python ×2

clj-time ×1

java ×1

lazy-sequences ×1

list ×1

php ×1