小编glg*_*lgl的帖子

一种更高效的 Python 代码编写方式

我必须编写一个类似于剪刀石头布的程序游戏,但有五个选项而不是三个。我能够使用 ifs 系统编写代码,但我想知道是否有更好的方法来编写代码。

\n\n

游戏规则:

\n\n

可以看到,一共有5个选项(X \xe2\x86\x92 Y 表示X战胜Y):

\n\n
    \n
  1. 岩石 \xe2\x86\x92 蜥蜴和剪刀
  2. \n
  3. 纸 \xe2\x86\x92 摇滚与史波克
  4. \n
  5. 剪刀\xe2\x86\x92 纸和蜥蜴
  6. \n
  7. 蜥蜴 \xe2\x86\x92 斯波克和纸
  8. \n
  9. 斯波克 \xe2\x86\x92 剪刀与石头
  10. \n
\n\n

主要代码:

\n\n
import random\nfrom ex2_rpsls_helper import get_selection\n\ndef rpsls_game():\n  com_score = 0\n  player_score = 0\n  draws = 0\n  while(abs(com_score - player_score) < 2):\n    print("    Please enter your selection: 1 (Rock), 2 (Paper), 3 (Scissors), 4 (Lizard) or 5 (Spock): ")\n    selection = int(input())\n    # a while loop to make …
Run Code Online (Sandbox Code Playgroud)

python if-statement

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

lxml LookupError:未知编码:'uft-8'

这是一个非常奇怪的错误,让我们看一下细节:

ts.py文件:

#-*- coding: utf-8 -*-
import requests
from lxml import html

headers = {
          'Host':'www.baidu.com',
          'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36',
          }

def get_html(url,enable_proxy=None):
    r = requests.get(url,headers=headers)
    parser = html.HTMLParser(encoding='utf-8')
    return html.document_fromstring(r.text, parser=parser)

p = get_html('http://www.baidu.com')

print p.xpath(u'//*[@id="setf"]/text()')[0].encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

如果我只执行ts.py,lxml就可以完美运行.

但是!当我get_html输入另一个文件时出现错误,请参阅以下内容:

ts.py:

#-*- coding: utf-8 -*-
import requests
from util import get_html

p = get_html('http://www.baidu.com')
print p.xpath(u'//*[@id="setf"]/text()')[0].encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

util.py:

#-*- coding: utf-8 -*-
import requests
from lxml import html

headers = {
          'Host':'www.baidu.com',
          'User-Agent':'Mozilla/5.0 …
Run Code Online (Sandbox Code Playgroud)

python lxml utf-8 character-encoding python-2.7

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

Linux rm无法删除文件

我无法删除以下任何文件:

-rw-r--r--   1 os_stu_61 osstu          0  3? 15?  17:15

-rw-r--r--   1 os_stu_61 osstu          0  3? 15?  17:01 000

-rw-r--r--   1 os_stu_61 osstu        738  3? 15?  17:41 000000
y.c

-rw-r--r--   1 os_stu_61 osstu          0  3? 15?  16:49 1234
?Q4?;
-rw-r--r--   1 os_stu_61 osstu        728  3? 15?  16:41 77777.c
?;
-rw-r--r--   1 os_stu_61 osstu        728  3? 15?  16:38 77777
Q4?;
s???s???--   1 os_stu_61 osstu          0  3? 15?  16:37 7777
-rw-r--r--   1 os_stu_61 osstu          0  3? 14?  18:02 abcd.c
4?;-------   1 os_stu_61 osstu …
Run Code Online (Sandbox Code Playgroud)

unix linux

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

将模板指针传递给memcpy

为什么以下不编译:

struct Carrier
{
  void* data;
  int StrategyRequestType;

  Carrier(int StrategyRequestType )
  {
    StrategyRequestType = StrategyRequestType;
  }

  template <typename T>
  bool loadStrategyRequestType(T)
  {
    data = malloc(sizeof(T));
    memcpy ( data, &T, sizeof(T) );   // Syntax error here - "expected primary expression before ',' token"
    return true;
  }
};
Run Code Online (Sandbox Code Playgroud)

什么方法可以使它工作?

c++ templates memcpy

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

C错误:'{'标记之前的预期表达式

这是代码http://pastebin.com/Y7zQkVHZ

并且编译器给出了上述错误.这是什么错误?谢谢(:

以下是可立即读取的代码:

#include <stdio.h>
#define round(a) {    \
    if(a < 0)    \
        ((a + 0.5) < (int)a)? (int)a: (int)a + 1;    \
    else        \
        ((a - 0.5) < (int)a)? (int)a: (int)a + 1;    \
}

#define ARRLENG 8 /* array length */

/* function prototype */
void arrRounder(double[ARRLENG]);

int main()
{
    double arr[ARRLENG] = {2.13, 6.9, 9.49999, 0.5, 8.0, 0, -2.4, -2.5};
    arrRounder(arr);
    return 0;
}

void arrRounder(double arr[ARRLENG])
{
    int i = 0;

    for(i = 0; i …
Run Code Online (Sandbox Code Playgroud)

c

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

lambda中的Python lambda

g = lambda x:[lambda x:x*1, lambda x:x*x, lambda x:x*x*x, lambda x:42][x%4](x)

[g(x) for x in xrange(12)]
Run Code Online (Sandbox Code Playgroud)

这个序列的下一个值是什么?

python lambda

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

Python if语句问题

我试图用if语句做一些工作,但不是选择正确的语句,而是选择所有语句.那么,代码如下:

money=100

if money==100:
    print('You buy a pair of headphones')
    money-=100
if money<50:
    print('You buy a movie')
        money-=25
if money<10:
    print('You buy a burger')
    money-=5
Run Code Online (Sandbox Code Playgroud)

返回此:

You buy a pair of headphones
You buy a movie
You buy a burger
Run Code Online (Sandbox Code Playgroud)

请帮忙!

python if-statement

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

TypeError:'str'对象不可调用python

我是python的新手我正在纠错 TypeError: 'str' object is not callable

当输入是

3
111+23
1638-1350
1992+133
Run Code Online (Sandbox Code Playgroud)

然后porgram运行成功,但当输入字符串包含'*'表示我的其他条件然后它throe TypeError

例如,如果输入是

3
111*23
1638-1350
110+456
Run Code Online (Sandbox Code Playgroud)

然后得到错误TypeError:'str'对象不可调用

这是我的代码链接到ideone代码 - > http://ideone.com/bDuXpW

def MAX(a,b,c):
    if(a>b and a>c):
        return a
    elif(b>a and b>c):
        return b
    else:
        return c

t=input()
for x in range(0,t):
    myinput=raw_input()
    if(myinput.find('+')!=-1):
        num1,num2=myinput.split('+')
        result=int(num1)+int(num2)
        result_str=str(result)
        num2='+'+num2
        len1=len(num1)
        len2=len(num2)
        len3=len(result_str)
        max=MAX(len1,len2,len3)
        line='-'*max
        num1=' '*(max-len1)+num1
        num2=' '*(max-len2)+num2
        result_str=' '*(max-len3)+result_str
        print num1
        print num2
        print line
        print result_str
        print '\n'
    elif(myinput.find('-')!=-1):
        num1,num2=myinput.split('-')
        result=int(num1)-int(num2)
        result_str=str(result)
        num2='-'+num2
        len1=len(num1)
        len2=len(num2)
        len3=len(result_str)
        max=MAX(len1,len2,len3) …
Run Code Online (Sandbox Code Playgroud)

python

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

错误消息"非法开始表达"?

// Simple program to understand pass by reference 
import java.util.*;
public class HelloDate {
    public static void main(String args[])
    {
         class Number                     // Contains only an integer
         {
             int i;
         }
         static void f(Number k)           // <<--- Illegal start of expression ???
         {
             k.i = 22;
         } 
         Number n1 = new Number();        // New object of Number
         n1.i = 9;
         f(n1);                           //Passing an object
         System.out.println(n1.i);        // Print
      }
    }  
Run Code Online (Sandbox Code Playgroud)

代码显示错误static void f(Number k).我应该把这个方法void f()放在课堂上吗?如果是,为什么这是必要的?

java methods compiler-errors class

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

两个可能的typedef struct语法选项,有什么不同?

我想为链表定义一个结构,从接下来的两个选项中,其中一个主题更好?他们俩都会工作吗?有什么不同,你将使用哪一个?

typedef struct suppliers * SUP;
    typedef struct suppliers{
    int num;
    int moths;
    SUP next;
} su;
Run Code Online (Sandbox Code Playgroud)

其他选项是:

typedef supplier *suppliers
typedef struct supplier{
    int num;
    int moths;
    struct supplier *next;
} supplier;
Run Code Online (Sandbox Code Playgroud)

c struct typedef

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

这是全球性的吗?

我正在尝试理解这个函数并将其转换为ctypes:

15 XDisplay* GetXDisplay() {
16   static XDisplay* display = NULL;
17   if (!display)
18     display = OpenNewXDisplay();
19   return display;
20 }
Run Code Online (Sandbox Code Playgroud)

我们在这里看到if(!display)然后做了display = OpenNewXDisplay();但是令我困惑的是那个人在它上面的行上定义的displayNULL(static XDisplay* display = NULL;)所以为什么在地球上需要if,如果他只是将它设置为null?以某种方式显示一个全局变量?

c ctypes

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

从python中的列表中访问变量名称

我正在使用python,我只是想知道是否可以将变量名存储在另一个列表中.

Achievement = ['hi', 'hey', 'hello']
lines = ['Achievement', 'hi']
print lines[0][2]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望输出为'hello'.任何人都可以建议我实现这一目标.

python list

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