我正在尝试解决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
”语句的字符串?
答案 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
如果字符串仅由0
和1
组成,则其set()
将等于{'0','1'}
(在Python中为set
表示形式)
hth