Python二进制字符串循环

问题描述 投票:0回答:4

关于我的任务的问题如下:

编写一个函数,该函数以变量aString标识的字符串作为参数。如果字符串仅包含数字0和1,则返回通过将参数与字符串“是二进制字符串”连接而形成的字符串。否则,返回一个表示参数长度的字符串,如下面的示例中所指定。将此功能命名为AmIBinary(aString)

我无法弄清楚如何形成一个循环,搜索字符串并确定该字符串是否是二进制字符串。我理解如何获取字符串的长度,我只是不明白如何弄清楚它是否是二进制字符串。

python loops binary
4个回答
2
投票

试试这个 !

import re
def AmIBinary(aString):
    #test_str='Vijay'
    if re.match("[01]+",aString):
        print('Binary string')
    else:
        print(len(test_str))

#AmIBinary("Vijay")
AmIBinary('010101')

2
投票

您可以像使用数字列表一样使用for循环字符串。

例如:

numbers = [1, 2, 3, 4]

您可以使用:

for number in numbers:
    # Do something

在您的情况下,您只需要将您收到的字符串作为参数切换数字列表,如下所示:

aString = '100100100'

for number in aString:
    # Check if there's a different number than '0' and '1'

看看在这种情况下你需要将它与数字的字符串版本进行比较,因为你正在迭代一个字符串,所以你从for循环中收到的每个值也都是一个字符串。

最后,你可能会有这样的事情:

def AmIBinary(aString):
    for number in aString:
        if number != '0' and number != '1':
            return len(aString)
    aString += 'is a binary string'
    return aString

正如你所看到的,我正在遍历字符串来检查它的任何元素是否与'1'和'0'不同,如果是,我只返回字符串的长度,否则,如果我检查了每个值字符串,一切都很好,我连接'是一个二进制字符串'到原始字符串并返回它。

我希望这有帮助。


0
投票

在没有使用循环的情况下尝试内置函数remix。

def AmIBin(s):
    try:    
       if s.startswith('0b'):
           int(s, 2)
       else:   
           int('0b{}'.format(s), 2)
    except: 
        return False
    else:   
        return True

-1
投票

二进制字符串已定义为仅包含“0”或“1”的字符串。那么,如何检查字符串中的每个“字符”,如果它不是“0”或“1”,您将知道该字符串不是二进制字符串。

© www.soinside.com 2019 - 2024. All rights reserved.