Python 您所在的位置:网站首页 c语言输入65得到a Python

Python

2024-07-17 08:52| 来源: 网络整理| 查看: 265

一个认为一切根源都是“自己不够强”的INTJ

个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数

Python-3.12.0文档解读

目录

详细说明

概述

语法

参数

返回值

示例

注意事项

应用场景

记忆策略

常用场景

使用场景 1:字符排序和比较

使用场景 2:字符编码转换

使用场景 3:简单加密

使用场景 5:字符映射和处理

巧妙用法

使用技巧 1:检测字符串是否排序

使用技巧 2:生成字符范围列表

使用技巧 3:实现自定义的字符编码方案

使用技巧 4:找到字符串中第一个非重复字符

使用技巧 5:计算字符串的哈希值

综合技巧

巧妙用法 1:实现基本的字符串加密(维吉尼亚密码)

巧妙用法 2:生成可读的唯一标识符

巧妙用法 3:字符矩阵的旋转操作

详细说明 概述

ord() 函数是 Python 内置函数之一,用于返回表示单个 Unicode 字符的字符串的 Unicode 码点(Unicode code point)的整数值。这个函数在处理 Unicode 字符时非常有用,特别是在需要获取字符的数值表示时。

语法

ord(c)

参数 c:表示单个 Unicode 字符的字符串。注意,这个字符串必须是长度为 1 的字符串,如果长度不为 1 或者不是字符串类型,将会抛出 TypeError。 返回值

返回给定字符的 Unicode 码点,类型为整数。

示例

以下是一些 ord() 函数的示例:

# 获取小写字母 'a' 的 Unicode 码点 unicode_a = ord('a') print(unicode_a) # 输出 97 # 获取大写字母 'A' 的 Unicode 码点 unicode_A = ord('A') print(unicode_A) # 输出 65 # 获取欧元符号 '€' 的 Unicode 码点 unicode_euro = ord('€') print(unicode_euro) # 输出 8364 # 获取中文字符 '你' 的 Unicode 码点 unicode_chinese_char = ord('你') print(unicode_chinese_char) # 输出 20320 注意事项

ord() 函数只接受长度为 1 的字符串。如果传入的字符串长度不为 1,将会引发 TypeError 异常。例如:

ord('ab') # 将会导致 TypeError: ord() expected a character, but string of length 2 found

虽然 ord() 函数主要用于 Unicode 字符,但它也适用于 ASCII 字符,因为 ASCII 是 Unicode 的一个子集。例如:

ord('A') # 返回 65 ord('a') # 返回 97

ord() 是 chr() 函数的逆函数。chr() 函数用于将 Unicode 码点转换为对应的字符。例如:

chr(97) # 返回 'a' chr(8364) # 返回 '€' 应用场景 字符编码:在文本处理和自然语言处理 (NLP) 中,了解字符的 Unicode 码点可以帮助进行字符编码和解码。排序和比较:在某些情况下,需要根据字符的 Unicode 码点进行排序或比较。数据处理:在一些数据处理任务中,可能需要将字符转换为其数值表示,以便进行进一步处理。

通过了解和使用 ord() 函数,可以更好地处理和操作字符串及其对应的 Unicode 码点。

记忆策略

联想记忆:

ord 可以联想到 "ordinal"(序数)的缩写,表示顺序或位置。Unicode 码点正是字符在 Unicode 表中的位置。可以想象每个字符在 Unicode 表中都有一个“序号”,ord() 函数就是获取这个“序号”。 常用场景

当然,以下是几个 ord() 函数的详细使用场景,每行代码都有注释:

使用场景 1:字符排序和比较

在需要对字符串中的字符进行排序或比较时,ord() 函数非常有用。

# 定义两个字符进行比较 char1 = 'b' char2 = 'a' # 使用 ord() 获取字符的 Unicode 码点并进行比较 if ord(char1) > ord(char2): print(f"'{char1}' 大于 '{char2}'") # 输出: 'b' 大于 'a' else: print(f"'{char1}' 小于或等于 '{char2}'") # 对字符串进行排序 string = "hello" sorted_string = ''.join(sorted(string, key=ord)) print(sorted_string) # 输出: 'ehllo' 使用场景 2:字符编码转换

在需要进行字符编码转换或处理特殊字符时,可以使用 ord() 函数获取字符的 Unicode 码点。

# 定义一个包含特殊字符的字符串 special_chars = "你好,世界!" # 将字符串中的每个字符转换为 Unicode 码点 unicode_points = [ord(char) for char in special_chars] # 打印 Unicode 码点 print(unicode_points) # 输出: [20320, 22909, 65292, 19990, 30028, 65281] # 将 Unicode 码点转换回字符 reconstructed_string = ''.join(chr(point) for point in unicode_points) print(reconstructed_string) # 输出: '你好,世界!' 使用场景 3:简单加密

可以使用 ord() 函数进行简单的字符加密,例如凯撒密码。

def caesar_encrypt(text, shift): encrypted_text = [] for char in text: # 对字母进行加密 if char.isalpha(): # 根据字符大小写,使用不同的开始点 start = ord('A') if char.isupper() else ord('a') # 计算加密后的字符 encrypted_char = chr((ord(char) - start + shift) % 26 + start) encrypted_text.append(encrypted_char) else: # 非字母字符不变 encrypted_text.append(char) return ''.join(encrypted_text) # 示例加密 original_text = "Hello, World!" encrypted_text = caesar_encrypt(original_text, 3) print(encrypted_text) # 输出: 'Khoor, Zruog!' 使用场景 5:字符映射和处理

在需要对特定字符进行映射或处理时,可以结合 ord() 和 chr() 函数使用。

# 定义需要处理的字符集 characters = "ABCabc123" # 定义字符映射表,将每个字符转换为其 Unicode 码点的十六进制表示 char_map = {char: hex(ord(char)) for char in characters} # 打印字符映射表 for char, hex_value in char_map.items(): print(f"字符 '{char}' 的 Unicode 码点为: {hex_value}") # 输出类似: # 字符 'A' 的 Unicode 码点为: 0x41 # 字符 'B' 的 Unicode 码点为: 0x42 # 字符 'C' 的 Unicode 码点为: 0x43 # 字符 'a' 的 Unicode 码点为: 0x61 # 字符 'b' 的 Unicode 码点为: 0x62 # 字符 'c' 的 Unicode 码点为: 0x63 # 字符 '1' 的 Unicode 码点为: 0x31 # 字符 '2' 的 Unicode 码点为: 0x32 # 字符 '3' 的 Unicode 码点为: 0x33 巧妙用法

ord() 函数虽然简单,但在某些情况下可以用来实现一些巧妙的功能。以下是几个不常见但非常巧妙的使用技巧:

使用技巧 1:检测字符串是否排序

可以使用 ord() 函数快速检测一个字符串是否已经按字母顺序排序。

def is_sorted_string(s): # 用 ord() 获取每个字符的 Unicode 码点,检查是否按顺序排列 return all(ord(s[i])


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有