Python-VBA函数之旅-chr函数

这篇具有很好参考价值的文章主要介绍了Python-VBA函数之旅-chr函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

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函数,Myelsa的Python函数之旅,python,开发语言,数据结构,运维,算法,php,网络

1、chr函数:
1-1、Python:
# 1.函数:chr
# 2.功能:将整型参数值转换为对应的Unicode字符
# 3.语法:chr(i)
# 4.参数:i可以是十进制或十六进制形式的数字:
# 4-1、十进制形式:i的取值范围为[0, 1114111]
# 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(0x110000)
       # print(chr(1114112))
# 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​​​​​​​ 文章来源地址https://www.toymoban.com/news/detail-852500.html

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

到了这里,关于Python-VBA函数之旅-chr函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python-VBA函数之旅-delattr函数

    目录 1、 delattr函数: 1-1、Python: 1-2、VBA: 2、相关文章: 个人主页:https://blog.csdn.net/ygb_1024?spm=1010.2135.3001.5421         delattr函数 在Python中具有广泛的应用场景,主要 用于动态地管理对象的属性 。常用的应用场景有: 1、动态属性管理: delattr()函数允许程序在运行时动态

    2024年04月18日
    浏览(24)
  • Python-VBA函数之旅-all函数

    目录 1、all函数: 1-1、Python: 1-2、VBA: 2、相关文章: 个人主页:非风V非雨-CSDN博客 ​​​​​​​          all函数 在编程中有多种实际应用场景,特别是在需要确保一个集合中的所有元素都满足某个条件时。常见的应用场景有: 1、验证数据的有效性: 当需要检查一

    2024年04月12日
    浏览(25)
  • Python-VBA函数之旅-input函数

    2024年04月28日
    浏览(11)
  • Python-VBA函数之旅-iter函数

    目录 一、iter函数的常见应用场景: 二、iter函数使用注意事项: 三、如何用好iter函数? 1、iter函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:神奇夜光杯-CSDN博客  一、iter函数的常见应用场景:         在Python中, iter()函数 具有广泛的应用场景,主要用于 创建

    2024年04月27日
    浏览(8)
  • Python-VBA编程500例-033(入门级)

    目录 1、角色定位: 1-1、Python: 1-2、VBA: 2、相关文章: Python算法之旅:Myelsa的Python算法之旅(高铁直达)-CSDN博客 个人主页:非风V非雨-CSDN博客 欢迎志同道合者一起交流学习,我的QQ:94509325/微信         角色定位 ( Role Positioning )在编程中的实际应用场景主要体现在以下几

    2024年04月26日
    浏览(6)
  • Python-VBA编程500例-029(入门级)

    目录 1、连续字符段索引: 1-1、Python: 1-2、VBA: 2、相关文章: Python算法之旅:Myelsa的Python算法之旅(高铁直达)-CSDN博客 个人主页:非风V非雨-CSDN博客 欢迎志同道合者一起交流学习,我的QQ:94509325/微信         连续字符段索引 ( Index of Consecutive Character Segments )在实际应用

    2024年04月13日
    浏览(10)
  • python中ord() 函数和chr() 函数

    ord() 函数 是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。 chr() 用一

    2023年04月09日
    浏览(10)
  • 详解python中的类似‘转ASCII’的ord函数和chr函数

    ord 函数和 chr 函数是Python中用于处理字符和Unicode码点的两个重要函数。 ord(char) 函数: ord 函数接受一个字符作为参数,返回该字符的Unicode码点(整数表示)。 例如, ord(\\\'A\\\') 将返回65,因为大写字母\\\"A\\\"的Unicode码点是65。 chr(unicode) 函数: chr 函数接受一个整数Unicode码点作为参

    2024年02月10日
    浏览(16)
  • Python高级编程之旅2:高级函数

    欢迎来到《Python高级编程之旅》系列的第二篇博客!在上一篇中,我们介绍了面向对象编程的概念和优势。今天,我们将继续探索Python中的高级编程技术,重点是高级函数。高级函数是Python中非常强大和灵活的概念,可以帮助我们编写更简洁、可读性更高的代码。让我们一起

    2024年01月19日
    浏览(14)
  • 编程江湖:Python探秘之旅-----函数的魔法(三)

    项目进行到关键阶段,“云悟”,项目经理,强调了代码的模块化和重用性的重要性。她希望团队能够提高工作效率,避免重复劳动。 云悟 :(审视着代码)我们需要使这些代码更加模块化。这样,我们就可以在不同的项目中重用这些功能,而不是每次都从头开始。 龙 :(

    2024年01月25日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包