Python-VBA函数之旅-chr函数

Python-VBA函数之旅-chr函数chr 函数 vbachr 函数

大家好,欢迎来到IT知识分享网。

目录

1、chr函数:

1-1、Python:

1-2、VBA:

2、相关文章:

个人主页:非风V非雨-CSDN博客
​​​​​​​


        chr函数Python编程中有多种应用场景,它主要用于将Unicode码点转换为对应的字符。常见的应用场景有:

1、字符(串)处理:chr函数可以将Unicode编码转换为对应的字符,可以用于处理字符串中的特殊字符或者进行字符替换操作。

2、加密解密:在一些加密算法中,字符的转换和替换是常见的操作,chr函数可以用于将数字编码转换为对应的字符,从而实现加密和解密的功能。

3、字符编码转换:在处理文本文件或者网络传输时,经常需要进行字符编码的转换,chr函数可以将Unicode编码转换为对应的字符,方便进行字符编码的转换操作。

4、图形界面开发:在图形界面开发中,有时需要根据用户输入的字符来进行相应的操作或者显示,chr函数可以将Unicode编码转换为对应的字符,方便进行图形界面的开发。

5、配合ord函数使用:chr()函数经常与ord()函数一起使用,以实现字符和Unicode码点之间的双向转换,这在处理需要精确控制字符编码的场景时非常有用。

6、生成控制字符:控制字符如换行符(`\n`)、制表符(`\t`)等,在Python中通常使用转义序列来表示。但你也可以使用chr()函数和相应的Unicode码点来生成这些字符。

7、创建自定义异常:在创建自定义异常时,chr()也很有用。您可以使用chr()生成一个Unicode字符,作为异常名称的一部分,使异常更加描述性和可读性。

        总之,chr()函数是Python中处理字符串和Unicode字符的强大工具,在许多不同的情况下都有实际应用。

Python-VBA函数之旅-chr函数

1、chr函数:
1-1、Python:
# 1.函数:chr # 2.功能:将整型参数值转换为对应的Unicode字符 # 3.语法:chr(i) # 4.参数:i可以是十进制或十六进制形式的数字: # 4-1、十进制形式:i的取值范围为[0, ] # 4-2、十六进制形式:i的取值范围为[0, 0x10ffff] # 5.返回值:返回Unicode码位为整数i对应的字符,例如,chr(97)返回字符串'a',chr(65)返回字符串'A',与ord()函数相反 # 6.说明: # 6-1、如果参数i的值超出取值范围,则会抛出ValueError错误: # ValueError: chr() arg not in range(0x) # print(chr()) # 7.示例: # 应用1:字符(串)处理 # 将ASCII码列表转换为字符列表 ascii_codes = [65, 66, 67] chars = [chr(code) for code in ascii_codes] print(chars) # ['A', 'B', 'C'] # 将字符串中的每个字符转换为对应的ASCII码列表 s = "Myelsa" ascii_codes = [ord(char) for char in s] print(ascii_codes) # [77, 121, 101, 108, 115, 97] # 生成常见的特殊符号 # 生成制表符(Tab) tab_char = chr(9) print(tab_char) # 生成换行符(Newline) newline_char = chr(10) print(newline_char) # 生成回车符(Carriage Return) carriage_return_char = chr(13) print(carriage_return_char) # 生成空格 space_char = chr(32) print(space_char) # 生成扩展ASCII码中的特殊符号 # 生成货币符号(例如美元符号) dollar_sign = chr(36) print(dollar_sign) # 生成版权符号 copyright_symbol = chr(169) print(copyright_symbol) # 生成注册商标符号 registered_symbol = chr(174) print(registered_symbol) # 生成商标符号 trademark_symbol = chr(8482) print(trademark_symbol) # $ # © # ® # ™ # 生成Unicode特殊符号 # 生成笑脸符号 smiley_face = chr(0x1F604) print(smiley_face) # 生成爱心符号 heart_symbol = chr(0x2665) print(heart_symbol) # 😄 # ♥ # 应用2:加密解密 def encrypt(text, shift): """ 加密函数,将文本中的每个字符通过ASCII码偏移进行加密。 :param text: 要加密的文本 :param shift: 偏移量 :return: 加密后的文本 """ encrypted_text = "" for char in text: # 将字符转换为ASCII码 ascii_code = ord(char) # 对ASCII码进行偏移 shifted_code = (ascii_code + shift) % 256 # 取模保证结果在ASCII码范围内 # 将偏移后的ASCII码转换回字符 encrypted_char = chr(shifted_code) encrypted_text += encrypted_char return encrypted_text def decrypt(encrypted_text, shift): """ 解密函数,将加密后的文本通过ASCII码偏移进行解密。 :param encrypted_text: 加密后的文本 :param shift: 偏移量(应与加密时使用的偏移量相同,但方向相反) :return: 解密后的文本 """ decrypted_text = "" for char in encrypted_text: # 将字符转换为ASCII码 ascii_code = ord(char) # 对ASCII码进行反向偏移 reversed_shift = -shift shifted_back_code = (ascii_code + reversed_shift) % 256 # 取模保证结果在ASCII码范围内 # 将偏移回的ASCII码转换回字符 decrypted_char = chr(shifted_back_code) decrypted_text += decrypted_char return decrypted_text # 主函数 if __name__ == '__main__': original_text = "Hello, Python!" shift = 8 # 偏移量,可以根据需要调整 # 加密文本 encrypted = encrypt(original_text, shift) print(f"加密文本: {encrypted}") # 解密文本 decrypted = decrypt(encrypted, shift) print(f"解密文本: {decrypted}") # 加密文本: Pmttw4(X|pwv) # 解密文本: Hello, Python! # 应用3:字符编码转换 # 将ASCII码转换为字符 # ASCII码列表 ascii_codes = [65, 66, 67, 32, 49, 50, 51] # 对应 'A', 'B', 'C', ' ', '1', '2', '3' # 使用chr()函数将ASCII码转换为字符 chars = [chr(code) for code in ascii_codes] # 输出字符列表 print(''.join(chars)) # ABC 123 # 将Unicode码点转换为字符(用于非ASCII字符) # Unicode 码点列表(包括非ASCII字符) unicode_codes = [0x4F60, 0x597D, 0x1F604] # 对应 '你', '好', '😄' # 使用chr()函数将Unicode码点转换为字符 chars = [chr(code) for code in unicode_codes] # 输出字符列表 print(''.join(chars)) # 输出: 你好😄 (注意:这需要在支持Unicode的环境中才能正确显示) # 你好😄 # 从二进制数据转换到字符(假设数据是ASCII编码的) # 二进制数据(ASCII编码) binary_data = [100, 101, 108, 108, 111] # 对应 'd', 'e', 'l', 'l', 'o' # 使用chr()函数将二进制数据转换为字符 chars = [chr(byte) for byte in binary_data] # 输出字符串 print(''.join(chars)) # dello # 从十六进制字符串转换到字符(假设数据是ASCII编码的) # 十六进制字符串表示的ASCII码 hex_string = '48 65 6c 6c 6f' # 对应 'H', 'e', 'l', 'l', 'o' # 将十六进制字符串分割并转换为整数,然后使用chr()转换为字符 chars = [chr(int(hex_byte, 16)) for hex_byte in hex_string.split()] # 输出字符串 print(''.join(chars)) # Hello # 应用4:图形界面开发 import tkinter as tk def on_enter_pressed(): # 获取输入框中的ASCII码 ascii_code = entry.get() try: # 将ASCII码转换为字符 character = chr(int(ascii_code)) # 显示字符 result_label.config(text=f"字符: {character}") except ValueError: # 如果输入的不是有效的整数,显示错误消息 result_label.config(text="Error: 请输入一个有效的ASCII码!") # 主函数 if __name__ == '__main__': # 创建主窗口 root = tk.Tk() root.title("ASCII码到字符转换器") # 创建标签用于显示提示信息 prompt_label = tk.Label(root, text="请输入一个ASCII码:") prompt_label.pack() # 创建输入框用于输入ASCII码 entry = tk.Entry(root) entry.pack() # 创建按钮,点击时调用on_enter_pressed函数 enter_button = tk.Button(root, text="输入", command=on_enter_pressed) enter_button.pack() # 创建标签用于显示结果 result_label = tk.Label(root, text="") result_label.pack() # 运行主循环 root.mainloop() # 应用5:配合ord函数使用 # 定义一个字符 character = 'A' # 使用ord()函数将字符转换为 ASCII 码 ascii_code = ord(character) print(f"The ASCII code for '{character}' is: {ascii_code}") # 使用chr()函数将ASCII码转换回字符 recovered_character = chr(ascii_code) print(f"The character for ASCII code {ascii_code} is: '{recovered_character}'") # 验证转换是否正确 assert recovered_character == character, "The character was not recovered correctly!" print("The character was recovered correctly!") # The ASCII code for 'A' is: 65 # The character for ASCII code 65 is: 'A' # The character was recovered correctly! # 应用6:生成控制字符 # 定义一些控制字符的ASCII码 newline_code = ord('\n') # 换行符 tab_code = ord('\t') # 制表符 carriage_return_code = ord('\r') # 回车符 # 使用chr()函数生成控制字符 newline_char = chr(newline_code) tab_char = chr(tab_code) carriage_return_char = chr(carriage_return_code) # 创建一个包含控制字符的字符串 control_string = f"Hello{tab_char}World{newline_char}This is a new line{carriage_return_char}Going back to the start" # 打印控制字符串 print(control_string) # 如果你在支持这些控制字符的环境中运行此代码(如命令行或终端). # 你将看到"Hello"和"World"之间有一个制表符的间隔, # "World"和"This is a new line"之间有一个换行符, # 以及"Going back to the start"将会从行的开始处打印,因为有一个回车符。 # Hello World # Going back to the start # 应用7:创建自定义异常 class InvalidCharacterException(Exception): """自定义异常类,用于处理无效的字符异常""" def __init__(self, ascii_code): # 使用chr()函数将ASCII码转换为字符,并构造异常消息 character = chr(ascii_code) if 0 <= ascii_code <= 127 else '?' self.message = f"无效的字符,其ASCII码为: {ascii_code} ({character})" super().__init__(self.message) # 主函数 if __name__ == '__main__': try: # 假设我们有一个无效的 ASCII 码 invalid_ascii_code = 128 raise InvalidCharacterException(invalid_ascii_code) except InvalidCharacterException as e: print(f"捕捉到异常: {e}") # 捕捉到异常: 无效的字符,其ASCII码为: 128 (?)
1-2、VBA:
' 1.函数:Chr ' 2.功能:将一个ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)值转换为对应的字符 ' 3.语法:Chr(number) ' 4.参数:number,必需参数,表示要转换的ASCII值。这个值应该是一个介于0到255之间的整数 ' 5.返回值:返回与number参数对应的字符 ' 6.说明: ' 7.示例: '--------------------------------------------------------------------------------------------------------------------------- Rem 模拟Python中chr函数应用1:字符(串)处理 ' 将ASCII码列表转换为字符列表 Sub TestRun_1() Dim ascii_codes() As Variant Dim chars() As Variant Dim i As Integer ascii_codes = Array(65, 66, 67) ReDim chars(LBound(ascii_codes) To UBound(ascii_codes)) For i = LBound(ascii_codes) To UBound(ascii_codes) chars(i) = Chr(ascii_codes(i)) Next i ' 显示字符列表 Dim charResult As String charResult = Join(chars, ", ") MsgBox charResult, vbInformation, "信息提醒" End Sub ' 将字符串中的每个字符转换为对应的ASCII码列表 Sub TestRun_2() Dim s As String Dim ascii_codes() As Variant Dim i As Integer Dim char As String ' 定义字符串 s = "Myelsa" ' 初始化ASCII码数组大小 ReDim ascii_codes(Len(s)) ' 遍历字符串中的每个字符 For i = 1 To Len(s) char = mid(s, i, 1) ' 获取第i个字符 ascii_codes(i - 1) = Asc(char) ' 获取字符的ASCII码并存储在数组中 Next i ' 输出ASCII码 For i = 0 To UBound(ascii_codes) Debug.Print ascii_codes(i) Next i End Sub ' 其他特殊字符处理 Sub TestRun_3() ' 生成制表符(Tab) Dim tab_char As String tab_char = Chr(9) Debug.Print tab_char ' 或者使用MsgBox显示制表符 ' MsgBox tab_char ' 生成换行符(Newline) Dim newline_char As String newline_char = Chr(10) Debug.Print newline_char ' MsgBox newline_char ' 生成回车符(Carriage Return) Dim carriage_return_char As String carriage_return_char = Chr(13) Debug.Print carriage_return_char ' MsgBox carriage_return_char ' 生成空格 Dim space_char As String space_char = Chr(32) Debug.Print space_char ' MsgBox space_char ' 生成扩展ASCII码中的特殊符号 ' 生成货币符号(例如美元符号) Dim dollar_sign As String dollar_sign = Chr(36) Debug.Print dollar_sign End Sub Rem 模拟Python中chr函数应用2:加密解密 Sub EncryptText(text As String, shift As Integer) Dim encryptedText As String Dim char As String Dim asciiCode As Integer Dim shiftedCode As Integer Dim encryptedChar As String encryptedText = "" For i = 1 To Len(text) char = mid(text, i, 1) asciiCode = Asc(char) shiftedCode = (asciiCode + shift) Mod 256 encryptedChar = Chr(shiftedCode) encryptedText = encryptedText & encryptedChar Next i ' 显示加密后的文本 MsgBox "加密文本: " & encryptedText End Sub Rem 执行程序,功能:实现Chr函数的加密操作 Sub TestRun_4() Dim originalText As String Dim shift As Integer Dim encrypted As String Dim decrypted As String originalText = "Hello, Python!" shift = 8 ' 加密文本 EncryptText originalText, shift End Sub Rem 模拟Python中chr函数应用3:字符编码转换 ' 将ASCII码转换为字符 Sub TestRun_5() Dim ascii_codes() As Variant Dim chars() As String Dim i As Integer Dim result As String ' 定义ASCII码列表 ascii_codes = Array(65, 66, 67, 32, 49, 50, 51) ' 初始化字符数组的大小与ASCII码列表相同 ReDim chars(LBound(ascii_codes) To UBound(ascii_codes)) ' 使用Chr()函数将ASCII码转换为字符 For i = LBound(ascii_codes) To UBound(ascii_codes) chars(i) = Chr(ascii_codes(i)) Next i ' 将字符数组连接成字符串 result = Join(chars, "") ' 输出字符串 MsgBox result, vbInformation, "信息提醒" End Sub ' 从二进制数据转换到字符(假设数据是ASCII编码的) Sub TestRun_6() Dim binary_data() As Variant Dim chars As String Dim i As Integer ' 定义ASCII编码的二进制数据 binary_data = Array(100, 101, 108, 108, 111) ' 对应 'd', 'e', 'l', 'l', 'o' ' 初始化结果字符串 chars = "" ' 使用Chr()函数将每个ASCII编码转换为字符,并连接成字符串 For i = LBound(binary_data) To UBound(binary_data) chars = chars & Chr(binary_data(i)) Next i ' 输出字符串 MsgBox chars, vbInformation, "信息提醒" End Sub Rem 模拟Python中chr函数应用5:配合ord函数使用 Sub TestRun_7() Dim character As String Dim ascii_code As Integer Dim recovered_character As String ' 设置字符 character = "A" ' 使用Asc()函数将字符转换为ASCII码 ascii_code = Asc(character) ' 显示ASCII码 MsgBox "The ASCII code for '" & character & "' is: " & ascii_code, vbInformation, "信息提醒" ' 使用Chr()函数将ASCII码转换回字符 recovered_character = Chr(ascii_code) ' 显示转换后的字符 MsgBox "The character for ASCII code " & ascii_code & " is: '" & recovered_character & "'", vbInformation, "信息提醒" ' 验证转换是否正确 If recovered_character = character Then MsgBox "The character was recovered correctly!", vbInformation, "信息提醒" Else MsgBox "The character was not recovered correctly!", vbInformation, "信息提醒" End If End Sub Rem 模拟Python中chr函数应用6:生成控制字符 Sub TestRun_8() Dim newline_char As String Dim tab_char As String Dim carriage_return_char As String Dim control_string As String ' 换行符、制表符和回车符在VBA中可以直接使用其特殊字符表示 newline_char = Chr(10) ' 换行符,ASCII码为10 tab_char = Chr(9) ' 制表符,ASCII码为9 carriage_return_char = Chr(13) ' 回车符,ASCII码为13 ' 创建一个包含控制字符的字符串 control_string = "Hello" & tab_char & "World" & newline_char & _ "This is a new line" & carriage_return_char & _ "Going back to the start" ' 输出到立即窗口(VBA的调试输出窗口) Debug.Print control_string ' 或者输出到Excel的某个单元格(例如A1) Range("A1").value = control_string ' 使用MsgBox显示字符串(但请注意,MsgBox可能不会正确显示控制字符) ' MsgBox control_string, vbInformation, "Control Characters String" End Sub ' ' ' ' ' ' '$Hello World 'This is a new line 'Going back to the start
2、相关文章:

2-1、Python-VBA函数之旅-bytes()函数​​​​​​​ 

2-2、Python-VBA函数之旅-callable()函数

2-3、Python-VBA函数之旅-classmethod()函数 

2-4、Python-VBA函数之旅-compile()函数 

Python算法之旅:Algorithm

Python函数之旅:Functions​​​​​​​ 

个人主页:非风V非雨-CSDN博客

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/125384.html

(0)
上一篇 2025-09-27 19:10
下一篇 2025-09-27 19:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信