相关疑难解决方法(0)

如何在Python中反转列表?

如何在Python中执行以下操作?

array = [0, 10, 20, 40]
for (i = array.length() - 1; i >= 0; i--)
Run Code Online (Sandbox Code Playgroud)

我需要有一个数组的元素,但从最后到开头.

python list

947
推荐指数
16
解决办法
137万
查看次数

'〜'在python中意味着什么?

'〜'在python中意味着什么?

我刚才在python中找到了这个BF解释器.

import sys

#c,i,r,p=0,0,[0]*255,raw_input()

c=0   
i=0
p=raw_input()    
r=[0]*255 

while c<len(p):
    m,n,u=p[c],0,r[i]
    if m==">":i+=1
    if m=="<":i-=1
    if m=="+":r[i]+=1
    if m=="-":r[i]-=1
    if m==".":sys.stdout.write(chr(u))  
    if m=="[":
        if ~u:
            while 1:
                m=p[c]
                if m=="]":n-=1
                if m=="[":n+=1
                if ~n:break
                c+=1
    if m=="]":
        if u:
            while 1:
                m=p[c]
                if m=="]":n-=1
                if m=="[":n+=1
                if ~n:break
                c-=1    
    c+=1
Run Code Online (Sandbox Code Playgroud)

我想知道它是做什么的,因为我想在我的ti 84(和PF一个)上制作一个

BF是http://en.wikipedia.org/wiki/Brainfuck,PF 类似

python interpreter brainfuck

13
推荐指数
5
解决办法
4232
查看次数

在Python中按位的意思

为什么按位不能切换到切换位的预期效果?参见下面的例子:

a = 5
print(bin(a))
b = ~a
print(bin(b))
Run Code Online (Sandbox Code Playgroud)

这是输出:

0b101
-0b110
Run Code Online (Sandbox Code Playgroud)

问题是为什么左边的第一个位没有切换?

考虑到Python文档说:

~x返回x的补码 - 通过将每个1切换为0而每个0切换为1得到的数字.


编辑:您是说"〜"不是简单切换位的运算符,而是它是二进制补码的运算符?如果是这样,为什么从文档中引用的句子不能说明这一点.Python文档中的上述句子并不意味着这一点.

python bit-manipulation

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

通过IP和掩码计算广播

我正在尝试通过逻辑OR而不是使用指定的IP和掩码来计算广播地址,但是func使我感到有些奇怪。为什么?

 IP = '192.168.32.16'
 MASK = '255.255.0.0' 

 def get_ID(ip, mask):
    ip = ip.split('.')
    mask = mask.split('.')
    ip = [int(bin(int(octet)), 2) for octet in ip]
    mask = [int(bin(int(octet)), 2) for octet in mask]
    subnet = [str(int(bin(ioctet & moctet), 2)) for ioctet, moctet in zip(ip, mask)]
    host = [str(int(bin(ioctet & ~moctet), 2)) for ioctet, moctet in zip(ip, mask)]
    broadcast = [str(int(bin(ioctet | ~moctet), 2)) for ioctet, moctet in zip(ip, mask)] # a mistake, i guess
    print('Subnet: {0}'.format('.'.join(subnet)))
    print('Host: {0}'.format('.'.join(host)))
    print('Broadcast address: {0}'.format('.'.join(broadcast)))
Run Code Online (Sandbox Code Playgroud)

屏幕截图

python ip-address broadcast

4
推荐指数
2
解决办法
4685
查看次数

~ Python 3 中的二进制补码

只是对二进制补码的工作方式有疑问。例如(在python中):

a = 60
print(~a)
Run Code Online (Sandbox Code Playgroud)

给出一个输出:-

-61
Run Code Online (Sandbox Code Playgroud)

不是二进制的补码60是:

a = 0011 1100
~a  = 1100 0011
Run Code Online (Sandbox Code Playgroud)

不应该-60吗?

我知道我错了,但为什么它会向前移动-61

bitwise-operators python-3.x

4
推荐指数
2
解决办法
8619
查看次数

基本位翻转算法

所以我是编程新手.在python中学习基础课程,所以我知道基础知识,我正在尝试更多的练习,我正在尝试这个问题,我不知道从哪里开始.

您将获得一个32位无符号整数的列表.您需要通过在其二进制表示中翻转位来输出您获得的无符号整数的列表(即必须设置未设置的位,并且必须取消设置位).输入格式

输入的第一行包含列表大小T.T行跟随每行,列表中有一个整数.

约束

1≤T≤100

输出格式

使用请求的结果从列表中为每个元素输出一行.

样本输入

3 2147483647 1 0

样本输出

2147483648 4294967294 4294967295

说明

以1为例,因为无符号32位是00000000000000000000000000000001并且正在翻转我们得到的是11111111111111111111111111111110,而这又是4294967294

python algorithm bit flip

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

〜1和~0在python 3中给出了奇怪的结果

&,|,^和〜都是python中的按位运算符.&,^和| 对我来说都很好 - 当我拿1 | 0时,我得到1.但是〜给了我奇怪的结果.~1给我-2,而0给我-1.这是因为我使用的是整数还是其他什么?我正在运行python 3.

我希望从〜0得到1,从〜1得到0(整数).这可能吗?

python bit-manipulation bitwise-operators python-3.x

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