【发布时间】:2014-06-07 15:00:17
【问题描述】:
我已经构建了一个套接字服务器,用于侦听来自另一台客户端机器的命令(我无权访问的代码)。客户端发送与击键相关的数字并发送与修饰键按下相关的修饰代码。比如
shift=1
control=2
alt=4
win=8
发送的修饰符代码始终是一个数字。例如修饰符=1。但是,如果发送了超过 1 个键,则可以说修饰符 = 3(即 shift+control)。问题是我如何从数字中找出键。
所以为了简单起见,让我们使用 a,b,c,d- 规则只是组合中的一个。
如果:
a=1
b=2
c=4
d=8
那么这些是组合的总数:
a+b=> 3
a+c=> 5
a+d=> 9
b+d=> 10
c+b=> 6
c+d=> 12
a+b+c=> 7
a+b+d=> 11
a+b+c+d=> 15
那么在 Python 中计算 n 的最佳方法是什么?一个开关?
switch(n):
case 3:
print 'its a+b'
case 5:
print 'its a+c'
...等等..
一定有更好的方法吧?
【问题讨论】:
-
“位域”将是一个有趣的搜索。
-
(我知道你的意思可能只是类比的“switch”,但作为记录,Python 没有像 C 那样的 switch 语句。)
-
a+c+d和b+c+d出了什么问题? -
没什么@jonrsharpe !只是错过了那两个:)