为什么我的函数不打印翻转后的二进制字符串?请帮忙谢谢

Why does my funcion not print the flipped binary string? Please help thank you

我正在尝试编写一个函数 flip(binary string),它接受一个二进制字符串(一个仅包含 1 和 0 的字符串)和 return 一个新字符串,其中每一位都 翻转。

def flip(binary_string):
    flip_string = ''
    l =len(binary_string)
    i=0 
    while i < l:
        if 'i' in binary_string== '1':
            flip_string += '0'
        elif 'i' in binary_string== '0':
            flip_string += '1'
        i = i + 1
    return flip_string
print(flip('101'))

if 'i' in binary_string== '1': - 这是一个等于 'i' in binary_string and binary_string == '1' 的链式比较,计算结果为 False来自@deceze 评论

最后,flip_string 将为空。所以它打印一个空字符串。

您的代码应该是这样的:

def flip(binary_string):
    flip_string = ''
    l =len(binary_string)
    i=0 
    while i < l:
        if binary_string[i] == '1':
            flip_string += '0'
        else:
            flip_string += '1'
        i = i + 1
    
    return flip_string
print(flip('10101'))
def flip(binary_string):
    flip_string = ''
    l =len(binary_string)
    i=0
    while i < l:
        if binary_string[i]=='1':
            flip_string += '0'
        elif binary_string[i]== '0':
            flip_string += '1'
        i = i + 1
    return flip_string
        
print(flip('101'))