处理空字符串 - Python

时间:2012-04-04 14:39:20

标签: python

我必须为Hexidecimal到Binary转换器做一个程序。我做得很好。然而,唯一没有完全计划的是输入空字符串。如果输入了无效数据,则会产生错误,除非未输入任何内容,也不会生成任何内容。没有出现错误,但它也没有做任何事情。

如何为空字符串设置错误?

def Binary(Hex):
    Result = ''
    ErrorFound = False
    BinaryEquivalent = ''
    for ThisHexDigit in Hex:
        if ThisHexDigit in ['1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F']:
            if ThisHexDigit == '0': BinaryEquivalent = '0'
            elif ThisHexDigit == '1': BinaryEquivalent = '1'
            elif ThisHexDigit == '2': BinaryEquivalent = '2'
            elif ThisHexDigit == '3': BinaryEquivalent = '3'
            elif ThisHexDigit == '4': BinaryEquivalent = '4'
            elif ThisHexDigit == '5': BinaryEquivalent = '5'
            elif ThisHexDigit == '6': BinaryEquivalent = '6'
            elif ThisHexDigit == '7': BinaryEquivalent = '7'
            elif ThisHexDigit == '8': BinaryEquivalent = '8'
            elif ThisHexDigit == '9': BinaryEquivalent = '9'
            elif ThisHexDigit == 'A': BinaryEquivalent = '10'
            elif ThisHexDigit == 'B': BinaryEquivalent = '11'
            elif ThisHexDigit == 'C': BinaryEquivalent = '12'
            elif ThisHexDigit == 'D': BinaryEquivalent = '13'
            elif ThisHexDigit == 'E': BinaryEquivalent = '14'
            elif ThisHexDigit == 'F': BinaryEquivalent = '15'
            Result = Result + BinaryEquivalent
        else:
            ErrorFound = True
            print('You have made a mistake')
    return Result

2 个答案:

答案 0 :(得分:1)

if not hex_string:
    raise ValueError('Cannot convert empty string')

答案 1 :(得分:0)

我经常发现自己在询问字符串是否有任何长度

emptyInput = ""
if len(emptyInput): #returns 0 and will fail 
#but as the comments remind me
if emptyInput: #also returns false

现在你有几个选项。只需添加其他内容并继续前进,引发错误或请求新输入。没有你的一些代码,很难建议最好的课程。