检查字符串是否为二进制

时间:2019-01-22 08:30:44

标签: python

我正在尝试解决python编程难题,该难题要求程序检查字符串是否为二进制。如果字符串为二进制,则应返回“ true”。否则,它将返回“ false”。

运行代码时,它将遍历字符串并根据字符串中的值是“ true”还是“ false”或“ 0”打印“ 1”或“ binary = {'0', '1'} def is_binary(string): for i in str(string): if i in binary: print('true') else: print('false') break is_binary('101010') is_binary('101210') true”。尽管我尝试了几种方法,但最终还是垂直显示布尔值。

false

当字符串为二进制时,如何修改代码以打印单个“ border-style: hidden; padding: 0px;”语句,而无论字符串的长度如何,则都不打印单个“ colspan”语句的字符串?

4 个答案:

答案 0 :(得分:1)

尝试以下代码:

def is_binary(bin_str):
    if (set(bin_str) - set(['1','0'])):
        return False
    else:
        return True

bin_str = "0110011"
print is_binary(bin_str)

bin_str = "011020"
print is_binary(bin_str)

输出:

True
False

使用OP逻辑的解决方案:

binary = {'0', '1'} 
def is_binary(string): 
    for i in str(string): 
        if i in binary: 
            continue 
        else: 
            return False 
    return True

print is_binary('101010') 
print is_binary('101210')

答案 1 :(得分:0)

代码中的问题是,如果每个字符都在binary集中,这不是您想要的,那么您正在打印。仅当所有字符都在true中时,才要打印binary。因此,您只需要在print('true')循环的末尾for

所以,这应该做到:

binary = {'0', '1'}
def is_binary(string):
    for i in str(string):
        if i not in binary:
            print('false')
            break
    print('true')
is_binary('101010')
is_binary('101210')

答案 2 :(得分:0)

您执行以下操作:

def is_binary(str):
    is_binary = True
    try:
        int(str, 2)
    except ValueError:
        is_binary = False
    return is_binary


is_binary('0101010101010') # returns True
is_binary('24340101041042101010') # returns False

我已经使用int转换为二进制文件Please refer here to learn

答案 3 :(得分:0)

捷径

我跌跌撞撞地在这里想了想:

# Declare one true and one false vars
bb = '010010111010010001011100'
bb2 = '010010111010010001O11100' # there's a letter O here

bin_set = set('0','1') # A set with char '0' and char '1'

我也可以写bin_set = {'0','1'}

然后(我在ipython 3中):

In : set(bb) == bin_set
Out: True

In : set(bb2) == bin_set
Out: False

如果字符串仅由01组成,则其set()将等于{'0','1'}(在Python中为set表示形式)

hth