这是一项家庭作业,所以如果你不想提供帮助,我明白这一点。但是,我没有像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...")
答案 0 :(得分: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:
您可以迭代字符串的字符,因此将其转换为列表是不必要的。
>>> import string
>>> all(c in string.hexdigits for c in 'cafebabe')
True