从原始输入

时间:2015-09-08 04:16:23

标签: python

为什么这会打印出列表[None, None, None]而不是列出我输入的三个答案的列表?

options = []

for i in range(3):
    options[i] = options.append(raw_input("enter an option"))

print options

2 个答案:

答案 0 :(得分:7)

由于list.append是就地方法,因此它不会返回任何内容,因此会返回None,这是您设置options[i]的内容。示例 -

>>> lst = [1]
>>> print(lst.append(2))
None
在上面的案例中打印了

None,因为这是lst.append()返回的内容。

您不需要options[i] =。代码 -

for i in range(3):
    options.append(raw_input("enter an option"))

答案 1 :(得分:2)

您也可以使用理解跳过初始化:

public function add_product_value($img = false){

        $this->db->insert("tbl_package",array(
            "p_name"=>$this->input->post("name"),
            'price'=>$this->input->post("price"),
            'discount'=>$this->input->post('dis'),
            'dis_date'=>date('Y-m-d H:i:s'),
            'p_decription'=>$this->input->post('editor1'),
            'supply_id'=>pde($this->input->post('supplyer')),
            'p_date'=>date('Y-m-d H:i:s'),
            'userid'=>$this->session->userdata("userID"),
            'auto'=>$this->input->post('auto')
        )); 
        $getID = mysql_insert_id();
        if($img){
            $n = 1;
            foreach($img as $key){
                if($n<=3):
                    $this->db->insert('tbl_photo',array(
                        "pho_name"=>$key['file_name'],
                        'id_pk'=>$getID
                    ));
                endif;
                $n++;
            }
        }
}