二进制#逻辑计算#与(∧)、或(∨)、非(¬)、异或(⨁)#与,或,非,异或的运算法则#与,或,非,异或运算的基础代码

二进制#逻辑计算#与(∧)、或(∨)、非(¬)、异或(⨁)#与,或,非,异或的运算法则#与,或,非,异或运算的基础代码,第1张

 任务

  本关任务是实现这些逻辑运算,每种逻辑运算对应一个函数:

  • AND(a ,b)ab进行与运算;
  • OR (a ,b)ab进行或运算;
  • NOT(a)a进行非运算;
  • XOR(a ,b)ab进行异或运算。

  其中,参数ab是用字符串表示的二进制数,且长度相同。


错误代码:
a=input()
b=input()
def AND(a,b):
    for i in range(len(a)):
        f=''
        a=a[i]
        b=b[i]
        if a==b==1:
            f=f+'1'
        else:
            f=f+'0'
    return f
print('%s %s %s = %s' % (a, 'and', b, AND(a,b)))
 运行结果:

Traceback (most recent call last):

  File "C:\Users\wuhuanan\untitled21.py", line 19, in
    print('%s %s %s = %s' % (a, 'and', b, AND(a,b)))

  File "C:\Users\wuhuanan\untitled21.py", line 13, in AND
    b=b[i]

IndexError: string index out of range(字符串索引超过了索引范围)

修改后:

########## Begin ##########
def AND(a, b):  
    c = ''  
    for i in range(len(a)):  
        if a[i]=='1' and b[i]=='1':  
            c = c+'1'  
        else:  
            c = c+'0'  
    return c
def OR(a,b):
    c=''
    for i in range(len(a)):
        if a[i]=='0'and b[i]=='0':
            c=c+'0'
        else:
            c=c+'1'
    return c
def NOT(a):  
    c = ''  
    for i in range(len(a)):  
        if a[i]=='1':  
            c = c+'0'  
        else:  
            c = c+'1'  
    return c
def XOR(a,b):
    c=''
    for i in range(len(a)):
        if a[i]==b[i]:
            c=c+'0'
        else:
            c=c+'1'
    return c
########## End ##########
a = input()
b = input()
print('%s %s %s = %s' % (a, 'and', b, AND(a,b)))
print('%s %s %s = %s' % (a, 'or' , b,  OR(a,b)))
print('%s %s = %s'    % (   'not', a, NOT(a)))
print('%s %s %s = %s' % (a, 'xor', b, XOR(a,b)))

 运算法则:
  • 与:均为1时结果为1,否则为0
  • 或:均为 0 时结果为 0,否则为 1;
  • 非:为 0 时结果为 1,为 1 时结果为 0;
  • 异或:相同为 0,相异为 1

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/758923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-01
下一篇 2022-05-01

发表评论

登录后才能评论

评论列表(0条)

保存