Discuss / Python / 出门前先交个作业,还有地方要改进

出门前先交个作业,还有地方要改进

Topic source

gd83594394

#1 Created at ... [Delete] [Delete and Lock User]

def safe_base64_decode(s): if [x for x in s[::-1] if x == '='] ==[]: if isinstance(s, bytes): s = s + b'==' if isinstance(s, str): s = s + r'==' return base64.b64decode(s)

gd83594394

#2 Created at ... [Delete] [Delete and Lock User]

这个好像好点:

def safe_base64_decode(s):
        if isinstance(s, bytes) and len([x for x in s if x != 61]) % 4 in [0,2,3]:
            s = s + b'='*(4-len(s)%4)
            return base64.b64decode(s)
        if isinstance(s, str) and len([x for x in s if x != '=']) % 4 in [0,2,3]:
            s = s + r'='*(4-len(s)%4)
            return base64.b64decode(s)

  • 1

Reply