一、前言
本文将介绍字符串常用函数,包括:len();max() 和 min();ord()和chr();bin()、oct()、hex()等。
二、正则表达式与Python中的实现
1.字符串构造
2. 字符串截取
【自然语言处理】NLP入门(一):1、正则表达式与Python中的实现(1):字符串构造、字符串截取
3. 字符串格式化输出
【自然语言处理】NLP入门(二):1、正则表达式与Python中的实现(2):字符串格式化输出(%、format()、f-string)
4.字符转义符
【自然语言处理】NLP入门(三):1、正则表达式与Python中的实现(3):字符转义符
ASCII编码
Character | Octal | Decimal | Hexadecimal | Binary |
---|---|---|---|---|
| 3位8进制数 | 十进制数 | 2位16进制数 | 8位2进制数 |
NUL (null) | 000 | 0 | 00 | 00000000 |
SOH (start of heading) | 001 | 1 | 01 | 00000001 |
STX (start of text) | 002 | 2 | 02 | 00000010 |
ETX (end of text) | 003 | 3 | 03 | 00000011 |
EOT (end of transmission) | 004 | 4 | 04 | 00000100 |
ENQ (enquiry) | 005 | 5 | 05 | 00000101 |
ACK (acknowledge) | 006 | 6 | 06 | 00000110 |
BEL (bell) | 007 | 7 | 07 | 00000111 |
BS (backspace) | 010 | 8 | 08 | 00001000 |
HT (horizontal tab) | 011 | 9 | 09 | 00001001 |
LF (line feed) | 012 | 10 | 0A | 00001010 |
VT (vertical tab) | 013 | 11 | 0B | 00001011 |
FF (form feed) | 014 | 12 | 0C | 00001100 |
CR (carriage return) | 015 | 13 | 0D | 00001101 |
SO (shift out) | 016 | 14 | 0E | 00001110 |
SI (shift in) | 017 | 15 | 0F | 00001111 |
DLE (data link escape) | 020 | 16 | 10 | 00010000 |
DC1 (device control 1) | 021 | 17 | 11 | 00010001 |
DC2 (device control 2) | 022 | 18 | 12 | 00010010 |
DC3 (device control 3) | 023 | 19 | 13 | 00010011 |
DC4 (device control 4) | 024 | 20 | 14 | 00010100 |
NAK (negative acknowledge) | 025 | 21 | 15 | 00010101 |
SYN (synchronous idle) | 026 | 22 | 16 | 00010110 |
ETB (end of transmission block) | 027 | 23 | 17 | 00010111 |
CAN (cancel) | 030 | 24 | 18 | 00011000 |
EM (end of medium) | 031 | 25 | 19 | 00011001 |
SUB (substitute) | 032 | 26 | 1A | 00011010 |
ESC (escape) | 033 | 27 | 1B | 00011011 |
FS (file separator) | 034 | 28 | 1C | 00011100 |
GS (group separator) | 035 | 29 | 1D | 00011101 |
RS (record separator) | 036 | 30 | 1E | 00011110 |
US (unit separator) | 037 | 31 | 1F | 00011111 |
SPACE | 040 | 32 | 20 | 00100000 |
! | 041 | 33 | 21 | 00100001 |
" | 042 | 34 | 22 | 00100010 |
043 | 35 | 23 | 00100011 | |
$ | 044 | 36 | 24 | 00100100 |
% | 045 | 37 | 25 | 00100101 |
& | 046 | 38 | 26 | 00100110 |
’ | 047 | 39 | 27 | 00100111 |
( | 050 | 40 | 28 | 00101000 |
) | 051 | 41 | 29 | 00101001 |
* | 052 | 42 | 2A | 00101010 |
| 053 | 43 | 2B | 00101011 |
, | 054 | 44 | 2C | 00101100 |
- | 055 | 45 | 2D | 00101101 |
. | 056 | 46 | 2E | 00101110 |
/ | 057 | 47 | 2F | 00101111 |
0 | 060 | 48 | 30 | 00110000 |
1 | 061 | 49 | 31 | 00110001 |
2 | 062 | 50 | 32 | 00110010 |
3 | 063 | 51 | 33 | 00110011 |
4 | 064 | 52 | 34 | 00110100 |
5 | 065 | 53 | 35 | 00110101 |
6 | 066 | 54 | 36 | 00110110 |
7 | 067 | 55 | 37 | 00110111 |
8 | 070 | 56 | 38 | 00111000 |
9 | 071 | 57 | 39 | 00111001 |
: | 072 | 58 | 3A | 00111010 |
; | 073 | 59 | 3B | 00111011 |
< | 074 | 60 | 3C | 00111100 |
= | 075 | 61 | 3D | 00111101 |
076 | 62 | 3E | 00111110 | |
? | 077 | 63 | 3F | 00111111 |
@ | 100 | 64 | 40 | 01000000 |
A | 101 | 65 | 41 | 01000001 |
B | 102 | 66 | 42 | 01000010 |
C | 103 | 67 | 43 | 01000011 |
D | 104 | 68 | 44 | 01000100 |
E | 105 | 69 | 45 | 01000101 |
F | 106 | 70 | 46 | 01000110 |
G | 107 | 71 | 47 | 01000111 |
H | 110 | 72 | 48 | 01001000 |
I | 111 | 73 | 49 | 01001001 |
J | 112 | 74 | 4A | 01001010 |
K | 113 | 75 | 4B | 01001011 |
L | 114 | 76 | 4C | 01001100 |
M | 115 | 77 | 4D | 01001101 |
N | 116 | 78 | 4E | 01001110 |
O | 117 | 79 | 4F | 01001111 |
P | 120 | 80 | 50 | 01010000 |
Q | 121 | 81 | 51 | 01010001 |
R | 122 | 82 | 52 | 01010010 |
S | 123 | 83 | 53 | 01010011 |
T | 124 | 84 | 54 | 01010100 |
U | 125 | 85 | 55 | 01010101 |
V | 126 | 86 | 56 | 01010110 |
W | 127 | 87 | 57 | 01010111 |
X | 130 | 88 | 58 | 01011000 |
Y | 131 | 89 | 59 | 01011001 |
Z | 132 | 90 | 5A | 01011010 |
[ | 133 | 91 | 5B | 01011011 |
| 134 | 92 | 5C | 01011100 |
] | 135 | 93 | 5D | 01011101 |
^ | 136 | 94 | 5E | 01011110 |
_ | 137 | 95 | 5F | 01011111 |
` | 140 | 96 | 60 | 01100000 | | ||||
a | 141 | 97 | 61 | 01100001 |
b | 142 | 98 | 62 | 01100010 |
c | 143 | 99 | 63 | 01100011 |
d | 144 | 100 | 64 | 01100100 |
e | 145 | 101 | 65 | 01100101 |
f | 146 | 102 | 66 | 01100110 |
g | 147 | 103 | 67 | 01100111 |
h | 150 | 104 | 68 | 01101000 |
i | 151 | 105 | 69 | 01101001 |
j | 152 | 106 | 6A | 01101010 |
k | 153 | 107 | 6B | 01101011 |
l | 154 | 108 | 6C | 01101100 |
m | 155 | 109 | 6D | 01101101 |
n | 156 | 110 | 6E | 01101110 |
o | 157 | 111 | 6F | 01101111 |
p | 160 | 112 | 70 | 01110000 |
q | 161 | 113 | 71 | 01110001 |
r | 162 | 114 | 72 | 01110010 |
s | 163 | 115 | 73 | 01110011 |
t | 164 | 116 | 74 | 01110100 |
u | 165 | 117 | 75 | 01110101 |
v | 166 | 118 | 76 | 01110110 |
w | 167 | 119 | 77 | 01110111 |
x | 170 | 120 | 78 | 01111000 |
y | 171 | 121 | 79 | 01111001 |
z | 172 | 122 | 7A | 01111010 |
{ | 173 | 123 | 7B | 01111011 |
| | 174 | 124 | 7C | 01111100 |
} | 175 | 125 | 7D | 01111101 |
~ | 176 | 126 | 7E | 01111110 |
DEL (delete) | 177 | 127 | 7F | 01111111 |
5. 字符串常用函数
在Python中有很多内置函数可以对字符串进行操作。如len()
、ord()
、chr()
、max()
、min()
等。
a. 字符串长度:len()
代码语言:javascript复制s = "Hello World"
length = len(s)
print(length)
- 输出: 11
b. max() 和 min()
根据ASCII值返回字符串中的最大或最小字符。
代码语言:javascript复制s = "abcde"
max_char = max(s)
min_char = min(s)
print(max_char) # Output: 'e'
print(min_char) # Output: 'a'
由 ASCII码表可知’1’<‘2’,‘1’<‘a’,‘A’<‘a’,那么汉字?
代码语言:javascript复制max('我','a','A','1')
代码语言:javascript复制min('我','a','A','1')
- ASCII码(American Standard Code for Information Interchange) 是最早的字符编码方案,使用7位(后来扩展为8位)二进制数字来表示128(后来扩展为256)个字符,包括英文字母、数字、标点符号和一些控制字符。ASCII码最初只为英语设计,不支持其他语言字符。
- Unicode码(Universal Character Set,通用字符集) 是一种更加全面的字符编码方案,包含了几乎所有已知的文字符号、标点符号、符号、文字、音标、图形符号等。Unicode码使用16位(后来扩展为32位)二进制数字来表示字符,所以可以表示更多的字符。Unicode码的目标是覆盖全球所有的字符,并为各种语言和文化提供一致的字符编码方案。
ASCII码是Unicode码的一个子集,在ASCII码中,只使用了Unicode码的前128个字符。~ 所以上述汉字最大
- ASCII码前面补零——>Unicode码
c. Unicode码转换:ord()和chr()
ord()
返回给定字符的 Unicode 码点chr()
返回给定 Unicode 码点对应的字符
char = 'A'
unicode_code = ord(char)
print(unicode_code) # Output: 65
unicode_code = 65
char = chr(unicode_code)
print(char) # Output: 'A'
代码语言:javascript复制ord('好')
代码语言:javascript复制22909
代码语言:javascript复制chr(22909)
代码语言:javascript复制'好'
d. 进制转换函数
可以使用内置函数 bin()
、oct()
、hex()
来进行转换:
bin()
函数:将一个整数转换为二进制表示。
print(bin(10)) # 输出 '0b1010'
oct()
函数:将一个整数转换为八进制表示。
print(oct(10)) # 输出 '0o12'
hex()
函数:将一个整数转换为十六进制表示。
print(hex(10)) # 输出 '0xa'
上述函数不是特定字符串对象的方法,而是可以直接用于字符串或其他兼容的数据类型。
函数与方法之比较
在Python中,函数(function)和方法(method)都是可调用的对象,但它们之间有一些区别:
- 函数(Function)
- 函数是一段可重复使用的代码块,它可以接受输入参数,并且在执行完任务后返回一个结果。
- 函数可以独立存在,不依赖于任何对象或类。
- 在Python中,函数可以通过
def
关键字定义,并可以在任何地方调用。
def greet(name):
return f"Hello, {name}!"
print(greet("Alice")) # Output: Hello, Alice!
- 方法(Method)
- 方法是与特定对象相关联的函数。它是在类定义中定义的函数,它可以访问对象的数据。
- 方法需要通过对象来调用,并且在方法内部可以使用
self
关键字来访问对象的属性和其他方法。 - 在Python中,方法是通过将函数绑定到类的属性来创建的,并且可以通过类的实例来调用。
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
return f"{self.name} says Woof!"
my_dog = Dog("Buddy")
print(my_dog.bark()) # Output: Buddy says Woof!
函数是独立的代码块,而方法是与类或对象相关联的函数。 方法依赖于类和对象的概念,而函数则是更一般的概念,不一定与特定的类或对象相关联。