项目将Hex转换为Base64

时间:2017-01-20 17:41:57

标签: python python-3.x

这是一项家庭作业,所以如果你不想提供帮助,我明白这一点。但是,我没有像Python一样寻找算法。我很擅长使用C ++,但本学期我的几个课程都在使用Python,所以我想练习一些。

这是我到目前为止的工作......它有效,但我想在程序中添加一些检查,例如检查以确保初始输入是十六进制格式。

将字符串转换为列表并从那里检查是否有效?

感谢您的帮助,

import binascii #used to convert from hexadecimal to binary
import base64   #used to convert from binary to base64


"""
get hexadecimal value
convert to binary
convert to base64
"""

#conversions
hexa = input("Enter a hexadecimal value: ")
bina = binascii.unhexlify(hexa)
Base64 = base64.b64encode(bina)

#print
print(Base64)

#exit program
input("Exit...")

1 个答案:

答案 0 :(得分:1)

两件事:

    如果输入包含错误,
  1. unhexlify将引发异常。您可以捕获此异常,例如继续循环。

    >>> try:
    ...     binascii.unhexlify('tsst')
    ... except binascii.Error as e:
    ...     print(f'Invalid input ({e}). Please try again:', file=sys.stderr)
    ...
    Invalid input (Non-hexadecimal digit found). Please try again:
    
  2. 您可以迭代字符串的字符,因此将其转换为列表是不必要的。

    >>> import string
    >>> all(c in string.hexdigits for c in 'cafebabe')
    True