用python的chr和ord实现输入一串数字变成汉字,输入一串汉字变成数字
时间: 2023-10-12 15:04:41 浏览: 71
好的,下面是代码实现:
```python
def num_to_chinese(num_str):
unicode_str = ''
for num in num_str:
unicode_str += chr(ord('零') + int(num))
return unicode_str
def chinese_to_num(chinese_str):
num_str = ''
for char in chinese_str:
num_str += str(ord(char) - ord('零'))
return num_str
```
这里的 `'零'` 是 Unicode 中的零字符,它的码值是 `0x96F6`。同样地,如果需要处理多个字符,可以将这个函数改写成适用于字符串的版本。
希望这个示例能够帮助到你,如果有任何问题,请随时向我提问。
相关问题
编写一个能够简单加密的Python程序,它可以将输入的明文(中文字符串)转换为密文,并将其输出。
好的,下面是一个能够简单加密中文字符串的Python程序示例:
```python
def encrypt(text):
encrypted_text = ''
for char in text:
encrypted_char = chr(ord(char) + 1)
encrypted_text += encrypted_char
return encrypted_text
plaintext = input("请输入明文:")
ciphertext = encrypt(plaintext)
print("密文为:", ciphertext)
```
这个程序会将输入的中文明文中的每个字符转换为其后一个字符。例如,输入"你好",程序会将其转换为"你好"的下一个字符,即"你好"变为"你好"。然后,程序会输出转换后的密文。
请注意,这只是一个简单的加密程序示例,不具有强大的加密算法和安全性。仅供学习和演示用途。实际应用中,我们应该使用更加安全和可靠的加密算法。
python 判断字母和汉字
在Python中,判断一个字符是字母还是汉字可以分为两个部分考虑:ASCII字符和Unicode字符。
对于ASCII字符,你可以使用Python的内建函数`ord()`获取字符的Unicode编码值,然后通过比较其范围来判断。英文字母(A到Z或a到z)的ASCII码范围是65到90和97到122,而汉字的ASCII编码通常在128以上,所以通过`ord()`的结果小于128来判断可能是字母。
对于Unicode字符,包括汉字和其他非拉丁字母,你需要更复杂的策略,因为它们不在ASCII范围内。Python的`unicodedata`库提供了一些方法,如`category()`,可以用来查看字符的类别,但是操作起来可能会稍微复杂一些。
下面是一个简单的例子,用于判断单个字符是否为英文字母:
```python
import unicodedata
def is_alpha_char(char):
if isinstance(char, str): # 检查是否为字符串
char = char.encode('utf-8')[0] # 转成字节并取第一个字符
return 'LATIN' in unicodedata.name(chr(ord(char))) and 65 <= ord(char) <= 90 or 97 <= ord(char) <= 122
# 测试
print(is_alpha_char('A')) # True
print(is_alpha_char('漢字')) # False
```
注意,这只是一个基本的判断,实际应用中可能还需要进一步的校验,比如考虑全角字符等特殊情况。
阅读全文