写一个字符串转十六进制ASCII码的Python脚本,不能转换的字符打出?就行。
时间: 2023-06-26 11:06:14 浏览: 81
可以使用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()`函数将不足两位的十六进制数左侧补零。
相关问题
帮我写一个十六进制转换成ASCII码的Python脚本
可以使用Python内置的`binascii`模块来实现十六进制转换成ASCII码。
以下是示例代码:
```python
import binascii
hex_str = "48656c6c6f20576f726c64" # 十六进制字符串
# 将十六进制字符串转换成bytes类型
hex_bytes = bytes.fromhex(hex_str)
# 使用binascii模块将bytes类型转换成ASCII码字符串
ascii_str = binascii.b2a_hex(hex_bytes).decode()
print(ascii_str) # Hello World
```
首先,我们将十六进制字符串转换成`bytes`类型的数据,然后使用`binascii`模块中的`b2a_hex()`函数将其转换成ASCII码字符串。最后使用`decode()`方法将其解码成Unicode字符串。
写一个将16进制转成ascii码的脚本
好的,以下是将16进制转成ASCII码的Python脚本:
```python
hex_str = input("请输入16进制字符串:") # 获取输入的16进制字符串
ascii_str = bytearray.fromhex(hex_str).decode() # 使用bytearray将16进制转成ascii
print("转换后的ASCII码为:", ascii_str) # 输出转换后的ascii码
```
请注意,这段代码仅适用于Python编程语言。如果您更喜欢其他编程语言,可以使用类似的方法实现。