写一个字符串转十六进制ASCII码的Python脚本,不能转换的字符打出?就行。
时间: 2023-06-26 17:06:14 浏览: 184
python实现图像转字符串(windows版)
可以使用Python内置的`ord()`函数将字符转换为对应的ASCII码,然后使用`hex()`函数将十进制数转换为十六进制字符串。如果字符无法转换为ASCII码,则打印出问号。
下面是一个示例代码:
```python
def str_to_hex_ascii(s):
hex_ascii = ''
for c in s:
try:
# 尝试将字符转换为十六进制ASCII码
hex_ascii += hex(ord(c))[2:].zfill(2)
except TypeError:
# 如果字符无法转换为ASCII码,则打印出问号
hex_ascii += '?'
return hex_ascii
# 示例用法
s = 'Hello, 你好!'
print(str_to_hex_ascii(s)) # 输出:48656c6c6f2c20e4bda0e5a5bdefbc81
```
在上述代码中,`hex()`函数返回的十六进制字符串中包含前缀`'0x'`,因此需要使用切片`[2:]`去掉前缀。同时,使用`zfill()`函数将不足两位的十六进制数左侧补零。
阅读全文