小编tMC*_*tMC的帖子

读取Python中的最低有效位

我不得不在Python中解析syslog消息的Facility和Severity.这些值随每条消息一起出现.事件的严重性为0-7,在整数的3个最低有效位中指定.从数字中评估这3位的最简单/最快的方法是什么?

我现在的代码只是进行3位右移,而不是将该数乘以8,并从原始数据中减去结果.

FAC = (int(PRI) >> 3)
SEV = PRI - (FAC * 8)
Run Code Online (Sandbox Code Playgroud)

必须有一种不那么复杂的方法来做到这一点 - 而不是消除比特和减少.

(我是一个交易系统管理员,所以,我不知道很多基础知识 - 请光临我!)

python bit-manipulation syslog

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

Python下划线变量

在交互式python中,有一个'continuation variable',下划线.

>>> import netlib
>>> netdev = netlib.netface('eth1')
>>> if netdev.getIP():
...    print _
... 
10.80.22.100
>>>
Run Code Online (Sandbox Code Playgroud)

但是在脚本中使用它,它是未定义的,因此失败:

if netdev.getIP(): SetValue('ipaddress', _)
Run Code Online (Sandbox Code Playgroud)

是否有类似的东西或方法为脚本启用此功能?

python variables

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

重新定义Pythons内置数据类型

是否有可能重新定义括号[]使用哪个对象?

我可以子类化该list对象,但是如何让解释器使用我的子类代替buildin列表对象?可能吗?

(我很确定我使用的是错误的条款 - 随意编辑)

>>> class mlist(list):
...     def __init__(self):
...         list.__init__(self)
...     def __getitem__(self, item):
...         return list.__getitem__(self, item) * 2
... 
>>> testlist = mlist()
>>> testlist.append(21)
>>> testlist[0]
42
>>> list = mlist() # maybe setting the 'list' type will do it?
>>> testlist = []
>>> testlist.append(21)
>>> testlist[0]
21                 # Nope
>>> 
Run Code Online (Sandbox Code Playgroud)

我没有实际用途 - 只是好奇.

python list subclass object built-in-types

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

使用"from"作为Python中的脚本参数

我的作业要求"from"用作命令行输入的参数.

p = optparse.OptionParser()
p.add_option("--from")
p.add_option("--to")
p.add_option("--file", default="carla_coder.ics")
options, arguments = p.parse_args()

print options.from
Run Code Online (Sandbox Code Playgroud)

显然,"from"是一个Python关键字......有什么方法可以解决这个问题吗?基本上,应该使用脚本运行 file.py --from=dd/mm/yyyy --to=dd/mm/yyyy --file=file

python

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

简单的字符串匹配

我想做一个简单的字符串匹配,从字符串的-front-搜索.是否有更容易的方法来做这个可能内置?(re看起来有点矫枉过正)

def matchStr(ipadr = '10.20.30.40', matchIP = '10.20.'):
    if ipadr[0:len(matchIP)] == matchIP: return True
    return False
Run Code Online (Sandbox Code Playgroud)

python string-matching

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

测试Python类中的特定方法

测试一个类是否定义了特定方法的最佳(或'Pythonic')方法是什么?

这两种方法都有效,但感觉不正确,因为在第二种方法中,我只是尝试访问它并捕获异常(如果它不存在).

有更好/更正确的方法吗?

class TestClass(object):
    def TestFunc(self):
        pass



if 'TestFunc' in dir(TestClass):
    print 'yes'
else:
    print 'No'



try:
    if TestClass.__getattribute__(TestClass, 'TestFunc'):
        print 'yes'

except:
    print 'No'
Run Code Online (Sandbox Code Playgroud)

python oop methods class

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

Python时间序列图表

我有一个需要图形数据的项目(使用Python).rrdtool似乎几乎完全符合我的要求 - 除了它只支持1秒的分辨率,我的数据点更接近.

GNUPlot看起来像野兽.我还没有挖掘它,但是粗略地看一眼,它似乎更适合于绘制表达式而不是快速学习的东西.

是否有另一个(希望相对容易使用)图形系统量身定制或易于适应图形时间序列?如果没有比GNUplot更好的东西了,我会开始深入研究它 - 我只是想确定没有其他我应该考虑的东西.

python linux graphing

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

可以通过Python代码提取git repo版本哈希吗?

有没有简单的方法可以使用Python代码获取git存储库(在GitHub上)版本哈希?我想用它来处理github上我的软件的'dev'版本的版本控制.

python git version

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

Python理解整合

我觉得必须有一种更容易(更清晰)的方法来使用理解来解析linux上的meminfo文件.该文件的格式为:

MemTotal:        3045588 kB
MemFree:         1167060 kB
Buffers:          336752 kB
Cached:           721980 kB
SwapCached:            0 kB
Active:           843592 kB
Inactive:         752920 kB
Active(anon):     539968 kB
Inactive(anon):   134472 kB
Run Code Online (Sandbox Code Playgroud)

我试图重写for循环id用于使用理解,发现我需要3个...

def parse_mem_file(memfile = '/proc/meminfo'):
    lines = open(memfile, 'r').readlines()
    lines = [line.strip('kB\n') for line in lines if line[-3:] == 'kB\n']
    lines = [line.split(':') for line in lines]
    return dict((key, int(value)) for (key, value) in lines)

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

我究竟做错了什么?有没有合理的方法来简化这个?

python parsing list-comprehension

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

从函数中退出()是不好的形式吗?

exit()从功能内部是不好的形式?

def respond_OK():
    sys.stdout.write('action=OK\n\n')
    sys.stdout.flush() # redundant when followed by exit()
    sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

而不是exit()__main__名称空间设置退出代码?

def respond_OK():
    global exit_status
    sys.stdout.write('action=OK\n\n')
    sys.stdout.flush()
    exit_status = 0

sys.exit(exit_status)
Run Code Online (Sandbox Code Playgroud)

从功能的角度来看,这种差异可以忽略不计,只是想知道形式上的共识是什么.如果你在其他人的代码中找到了先前的代码,你会看两次吗?

python function

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

为什么我的二分算法不起作用?蟒蛇

我正在为我的Python课程编写信用卡付款计算器.分配是为计算器编写一个定义,计算出每月支付的费用,以便在x个月内将余额归零.

该定义有3个参数:initialBalance,apr,months.

尽管我可以想象,分配的目的是让我们使用二分法来找到答案,并且我写了另外两个有助于赋值的定义:

1)newBalance() - 确定付款后的新余额; 2)余额() - 在付款后返回余额清单;

在这种情况下,balances()[ - 1]返回最终余额,所以我的行动计划是将列表中的最后一项评估为等于0(或至少在0的0.005之内!)如果是,则返回付款让我在那里.

如果最终余额是负数(我付了太多钱!):付款=付款 - (付款/ 2); 如果余额是正数(我没有足够的支付!):付款=付款+(付款/ 2);

尽我所能,我的算法应该最终得出结论,但它永远找不到足够接近的答案......

这是我的代码,(以及教授在最后的测试def):

def newBalance(prevBalance, apr, payment):
    """
    - prevBalance: the balance on the credit card statement.
    - apr: the annual percentage rate (15.9 here means 15.9%).
    - payment: the amount paid this month to the credit card company.
    - returns: the new balance that will be owed on the credit card
      (assumes no purchases are made). 
    """
    interestCharge = float(((apr / 12.0) …
Run Code Online (Sandbox Code Playgroud)

python bisection

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

while循环中的变量声明

using namespace std;

class Counter
{
    int val;

public:
    Counter() { val = 0; }
    int Next() { return ++val; }
};

int main()
{
    Counter counter;

    while (int c = counter.Next() <= 5)
    {
        cout << c << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时,程序打印15 次。因此,.Next()当 while 循环终止时返回预期值。

为什么remain的值c设置为初始值?

我对 C++非常陌生(这是我编写的第一个 C++ 程序),我只是想了解 的返回值如何.Next()按预期进行评估,但未在c变量中捕获。

c++

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

Python map vs list comprehension

比较这些时,您认为哪种更直观/更容易阅读?

>>> [ord(i) for i in 'some string']
[115, 111, 109, 101, 32, 115, 116, 114, 105, 110, 103]

>>> map(ord,'some string')
[115, 111, 109, 101, 32, 115, 116, 114, 105, 110, 103]
Run Code Online (Sandbox Code Playgroud)

lambda/map方式有什么好处吗?

python lambda loops

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