前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python字符串操作:常用方法和高级技巧

Python字符串操作:常用方法和高级技巧

作者头像
统计学家
发布于 2024-10-21 02:57:55
发布于 2024-10-21 02:57:55
17400
代码可运行
举报
运行总次数:0
代码可运行

Python作为一种强大的编程语言,在处理文本数据方面提供了丰富而灵活的工具。字符串是Python中最常用的数据类型之一,掌握字符串操作不仅能提高代码效率,还能解决各种复杂的文本处理问题。本文将深入探讨Python字符串的各种操作方法和高级技巧。

1. 字符串的本质与创建

在Python中,字符串是不可变的序列类型。这意味着一旦创建了字符串,就不能修改其中的任何字符。所有看似修改字符串的操作实际上都是创建了一个新的字符串对象。

创建字符串的多种方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用单引号或双引号
s1 = 'Hello'
s2 = "World"

# 使用三引号创建多行字符串
s3 = '''This is a
multi-line string'''

# 使用转义字符
s4 = 'It\'s a beautiful day'

# 原始字符串,忽略转义字符
s5 = r'C:\Users\Username\Documents'

# 字节字符串
s6 = b'Hello'  # 只包含ASCII字符

# 使用str()函数
s7 = str(42)  # 将其他类型转换为字符串

2. 字符串的基本操作

字符串拼接

字符串拼接是最常见的操作之一。Python提供了多种方法来实现这一目标。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用 + 运算符
first_name = 'John'
last_name = 'Doe'
full_name = first_name + ' ' + last_name  # 'John Doe'

# 使用 += 运算符
greeting = 'Hello'
greeting += ' World'  # 'Hello World'

# 使用 join() 方法
words = ['Python', 'is', 'awesome']
sentence = ' '.join(words)  # 'Python is awesome'

# 使用格式化字符串
name = 'Alice'
age = 30
info = f'{name} is {age} years old'  # 'Alice is 30 years old'

# 使用 str.format() 方法
template = '{} is {} years old'
info = template.format(name, age)  # 'Alice is 30 years old'

字符串重复

使用 * 运算符可以轻松地重复字符串。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
laugh = 'Ha' * 3  # 'HaHaHa'
line = '-' * 20   # '--------------------'

字符串长度

使用内置函数 len() 可以获取字符串的长度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
text = 'Hello, World!'
length = len(text)  # 13

3. 字符串索引和切片

Python的字符串支持索引和切片操作,这使得访问和提取子字符串变得非常方便。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = 'Python Programming'

# 索引(正向和反向)
print(s[0])    # 'P'
print(s[-1])   # 'g'

# 基本切片
print(s[7:18])  # 'Programming'
print(s[:6])    # 'Python'
print(s[7:])    # 'Programming'

# 带步长的切片
print(s[::2])   # 'Pto rgamn'
print(s[::-1])  # 'gnimmargorP nohtyP' (反转字符串)

# 使用切片修改字符串
new_s = s[:6] + ' is ' + s[7:]  # 'Python is Programming'

4. 常用字符串方法

Python的字符串类型提供了大量的内置方法,用于执行各种字符串操作。

大小写转换

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = 'Hello, World!'

print(s.upper())       # 'HELLO, WORLD!'
print(s.lower())       # 'hello, world!'
print(s.capitalize())  # 'Hello, world!'
print(s.title())       # 'Hello, World!'
print(s.swapcase())    # 'hELLO, wORLD!'

# 检查大小写
print('HELLO'.isupper())  # True
print('hello'.islower())  # True
print('Title Case'.istitle())  # True

查找和替换

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = 'Python is amazing and Python is powerful'

# 查找
print(s.find('Python'))      # 0
print(s.find('Python', 10))  # 25 (从索引10开始查找)
print(s.rfind('Python'))     # 25 (从右侧开始查找)

# index() 方法类似于 find(),但在未找到时会引发 ValueError
try:
    print(s.index('Java'))
except ValueError:
    print("'Java' not found in the string")

# 计数
print(s.count('Python'))  # 2

# 替换
print(s.replace('Python', 'Java'))  # 'Java is amazing and Java is powerful'
print(s.replace('Python', 'Java', 1))  # 'Java is amazing and Python is powerful'

分割和连接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 分割
s = 'apple,banana,orange,grape'
fruits = s.split(',')  # ['apple', 'banana', 'orange', 'grape']

# 限制分割次数
print('a,b,c,d'.split(',', 2))  # ['a', 'b', 'c,d']

# 按行分割
multiline = '''Line 1
Line 2
Line 3'''
lines = multiline.splitlines()  # ['Line 1', 'Line 2', 'Line 3']

# 连接
new_s = '-'.join(fruits)  # 'apple-banana-orange-grape'

# 使用空字符串连接
letters = ['H', 'e', 'l', 'l', 'o']
word = ''.join(letters)  # 'Hello'

去除空白字符和其他字符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = '   Hello, World!   '

print(s.strip())    # 'Hello, World!'
print(s.lstrip())   # 'Hello, World!   '
print(s.rstrip())   # '   Hello, World!'

# 去除指定字符
s = '...Python...'
print(s.strip('.'))   # 'Python'
print(s.lstrip('.'))  # 'Python...'
print(s.rstrip('.'))  # '...Python'

对齐和填充

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = 'Python'

print(s.ljust(10))        # 'Python    '
print(s.rjust(10))        # '    Python'
print(s.center(10))       # '  Python  '

# 使用指定字符填充
print(s.ljust(10, '-'))   # 'Python----'
print(s.rjust(10, '*'))   # '****Python'
print(s.center(10, '='))  # '==Python=='

# 使用 zfill() 在数字字符串左边填充零
print('42'.zfill(5))      # '00042'

5. 字符串格式化

Python提供了多种字符串格式化的方法,每种方法都有其特定的用途和优势。

% 运算符(旧式字符串格式化)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name = 'Alice'
age = 30

print('My name is %s and I am %d years old.' % (name, age))
# 'My name is Alice and I am 30 years old.'

# 使用字典
print('%(name)s is %(age)d years old.' % {'name': 'Bob', 'age': 25})
# 'Bob is 25 years old.'

str.format() 方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print('My name is {} and I am {} years old.'.format(name, age))
# 'My name is Alice and I am 30 years old.'

# 使用索引
print('The {1} {0} {2}'.format('brown', 'quick', 'fox'))
# 'The quick brown fox'

# 使用命名参数
print('The {adj} {noun}'.format(adj='happy', noun='programmer'))
# 'The happy programmer'

# 格式化选项
pi = 3.14159
print('Pi is approximately {:.2f}'.format(pi))  # 'Pi is approximately 3.14'

f-strings (Python 3.6+)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name = 'Charlie'
age = 35
print(f'My name is {name} and I am {age} years old.')
# 'My name is Charlie and I am 35 years old.'

# 在f-string中使用表达式
print(f'2 + 2 = {2 + 2}')  # '2 + 2 = 4'

# 格式化选项
import datetime
now = datetime.datetime.now()
print(f'Current time: {now:%Y-%m-%d %H:%M:%S}')
# 例如:'Current time: 2023-04-13 15:30:45'

6. 高级字符串操作

字符串比较

Python支持字符串的比较操作,这在排序和条件判断中非常有用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 字典序比较
print('apple' < 'banana')  # True
print('Python' == 'python')  # False

# 忽略大小写比较
s1 = 'python'
s2 = 'PYTHON'
print(s1.lower() == s2.lower())  # True

字符串的成员资格测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
text = 'Python is amazing'
print('Python' in text)  # True
print('Java' not in text)  # True

字符串的开头和结尾检查

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
filename = 'document.txt'
print(filename.startswith('doc'))  # True
print(filename.endswith('.txt'))  # True

# 使用元组检查多个选项
print(filename.endswith(('.txt', '.pdf', '.doc')))  # True

字符串的转换和编码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 转换为字节
s = 'Hello, World!'
b = s.encode('utf-8')
print(b)  # b'Hello, World!'

# 从字节转换回字符串
s2 = b.decode('utf-8')
print(s2)  # 'Hello, World!'

# 处理不同编码
s_unicode = '你好,世界!'
b_gbk = s_unicode.encode('gbk')
s_from_gbk = b_gbk.decode('gbk')
print(s_from_gbk)  # '你好,世界!'

使用正则表达式

对于更复杂的字符串操作,可以使用Python的re模块进行正则表达式匹配。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import re

text = "The quick brown fox jumps over the lazy dog"

# 查找所有单词
words = re.findall(r'\w+', text)
print(words)  # ['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']

# 替换
new_text = re.sub(r'fox', 'cat', text)
print(new_text)  # "The quick brown cat jumps over the lazy dog"

# 分割
parts = re.split(r'\s+', text)
print(parts)  # ['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']

7. 性能考虑

在处理大量字符串时,性能是一个重要因素。以下是一些提高字符串操作性能的技巧:

  1. 使用 join() 而不是 + 进行多个字符串的拼接。
  2. 对于需要多次修改的字符串,考虑使用 list 存储字符,最后再 join。
  3. 使用 str.translate() 进行批量字符替换,比多次调用 replace() 更快。
  4. 对于大文本的处理,考虑使用生成器和迭代器来减少内存使用。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 示例:高效地构建大字符串
def build_string(n):
    parts = []
    for i in range(n):
        parts.append(f"Part {i}")
    return ' '.join(parts)

large_string = build_string(10000)

结论

Python的字符串操作功能强大而灵活,掌握这些方法和技巧可以大大提高文本处理的效率。从基本的字符串创建和拼接,到高级的格式化和正则表达式匹配,Python为各种复杂度的字符串操作提供了全面的解决方案。在实际编程中,根据具体需求选择合适的方法,并注意性能优化,将帮助你更好地处理文本数据。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【AI 大模型】使用 AI 大模型 编程 ② ( CodeGeeX 工具 | CodeGeeX 功能 | VSCode 安装使用 CodeGeeX | Tabby 工具 | Tabby 部署与使用 )
CodeGeeX 可以作为 GitHub Copilot 的平替 , 二者功能基本一致 ;
韩曙亮
2024/08/09
5190
【AI 大模型】使用 AI 大模型 编程 ② ( CodeGeeX 工具 | CodeGeeX 功能 | VSCode 安装使用 CodeGeeX | Tabby 工具 | Tabby 部署与使用 )
【Web APIs】JavaScript 操作元素 ⑥ ( 关闭对话框案例 | display 属性简介 | 页面标签结构和样式 | 盒子模型细节 | 绝对布局要点 - 设置负值即可超出父容器模型 )
在 【Web APIs】JavaScript 操作元素 ① ( 修改元素内容 | innerText 属性修改元素文本内容 | innerHTML 属性修改元素 HTML 内容 ) 博客中介绍了 使用
韩曙亮
2024/08/09
2020
【Web APIs】JavaScript 操作元素 ⑥ ( 关闭对话框案例 | display 属性简介 | 页面标签结构和样式 | 盒子模型细节 | 绝对布局要点 - 设置负值即可超出父容器模型 )
【Web APIs】JavaScript 操作元素 ⑤ ( 修改元素样式属性 | 行内样式操作 - element.style | 类名样式操作 | 类列表样式操作 )
在 【Web APIs】JavaScript 操作元素 ① ( 修改元素内容 | innerText 属性修改元素文本内容 | innerHTML 属性修改元素 HTML 内容 ) 博客中介绍了 使用
韩曙亮
2024/08/09
2130
【Web APIs】JavaScript 操作元素 ⑤ ( 修改元素样式属性 | 行内样式操作 - element.style | 类名样式操作 | 类列表样式操作 )
【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )
首先 , 设置固定定位 , 固定定位盒子始终显示在浏览器中指定的位置 , 与父容器或其它容器无关 ;
韩曙亮
2023/10/11
5200
【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )
【如果你要学JS <16>】—— 表单元素的属性操作,密码显示隐藏的实现.
根据早中晚不同时间,进行一个判断,然后再进行一个事件的改变,近而可以从不同时间段获得不同的图片状态
像素人
2023/12/30
2860
【如果你要学JS <16>】—— 表单元素的属性操作,密码显示隐藏的实现.
前端之HTML和CSS
  HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的标签组成,用这种语言制作的文件保存的是一个文本文件,文件的扩展名为html或者htm。
汪凡
2019/03/01
4.4K0
前端之HTML和CSS
【移动端网页布局】Flex 弹性布局案例 ③ ( 横向导航栏 | 固定定位下面的布局设置 | 设置横向导航栏弹性布局 | 弹性布局主轴和侧轴设置 | 二倍精灵图 )
在上一篇博客中实现的搜索栏 , 使用 固定定位 设置该搜索栏位置 , 不管网页如何滚动 , 最上方始终显示该搜索栏 ;
韩曙亮
2023/10/11
6860
【移动端网页布局】Flex 弹性布局案例 ③ ( 横向导航栏 | 固定定位下面的布局设置 | 设置横向导航栏弹性布局 | 弹性布局主轴和侧轴设置 | 二倍精灵图 )
【移动端网页布局】流式布局案例 ⑦ ( 水平排列的图片链接 2 | 浮动设置 | 盒子模型类型设置 | 结构伪类选择器 )
使用 <div> 标签作为父盒子 , 其中容纳三个 链接 <a> 标签 , 每个链接标签中包含一个 <img> 标签 ;
韩曙亮
2023/05/04
2.4K0
【移动端网页布局】流式布局案例 ⑦ ( 水平排列的图片链接 2 | 浮动设置 | 盒子模型类型设置 | 结构伪类选择器 )
【移动端网页布局】流式布局案例 ⑥ ( 多排按钮导航栏 | 设置浮动及宽度 | 设置图片样式 | 设置文本 )
该导航栏的宽度自动充满整个屏幕 , 宽度为 100% , 高度也不需要设置 , 设置自适应即可 ;
韩曙亮
2023/05/04
3.5K0
【移动端网页布局】流式布局案例 ⑥ ( 多排按钮导航栏 | 设置浮动及宽度 | 设置图片样式 | 设置文本 )
使用 CSS 的仿 GitHub 登录页面
在线演示地址:https://haiyong.site/demo/github.html 码上掘金地址:https://code.juejin.cn/pen/7130522560411729934
海拥
2022/09/28
1.8K0
使用 CSS 的仿 GitHub 登录页面
【CSS】课程网站头部制作 ④ ( 搜索栏按钮测量 | 搜索栏按钮代码编写 | 代码示例 )
文章目录 一、搜索栏按钮测量 1、按钮测量 2、按钮切图 二、搜索栏按钮代码编写 1、HTML 标签结构 2、CSS 样式 3、展示效果 一、搜索栏按钮测量 ---- 1、按钮测量 右侧的按钮大小 , 50 x 40 像素 ; 按钮颜色值 #00a4ff ; 2、按钮切图 使用 切片工具 , 将 按钮图片 进行选择 , 然后进行切图 ; 选择 " 菜单栏 / 文件 / 导出 / 存储为 Web 所用格式 " , 选择导出的格式 , 以及 切好的图片如下 : 二、搜索栏按钮
韩曙亮
2023/04/03
2.4K0
【CSS】课程网站头部制作 ④ ( 搜索栏按钮测量 | 搜索栏按钮代码编写 | 代码示例 )
【移动端网页布局】流式布局案例 ⑤ ( 连续排列的链接图片 | 设置盒子圆角 | 超出部分隐藏 | 设置浮动布局 | 精确计算浮动元素宽度避免换行 | 设置图片宽度自适应 )
将布局中的 三个 链接图片 , 放置在 单独的 <div> 标签中 , 每个 <div> 标签中放置一个 <a> 链接标签 , 在 <a> 链接标签中包裹一个 <img> 图片 ;
韩曙亮
2023/05/04
3.7K0
【移动端网页布局】流式布局案例 ⑤ ( 连续排列的链接图片 | 设置盒子圆角 | 超出部分隐藏 | 设置浮动布局 | 精确计算浮动元素宽度避免换行 | 设置图片宽度自适应 )
【Web APIs】JavaScript 操作元素 ⑦ ( 多精灵图背景设置 | 核心要点 - 设置 backgroundPosition 属性 | 清除默认样式 | )
本案例中 , 就 使用了 <li> 元素 进行页面结构布局 , 布局时需要使用到 浮动 样式 , 计算换行时 , 每个像素宽高都要精确计算 ;
韩曙亮
2024/08/09
1640
【Web APIs】JavaScript 操作元素 ⑦ ( 多精灵图背景设置 | 核心要点 - 设置 backgroundPosition 属性 | 清除默认样式 | )
【CSS】课程网站头部制作 ③ ( 搜索栏表单测量 | 搜索栏表单代码编写 | 代码示例 )
导航栏文本 有 10 像素内边距 , 20 像素外边距 , 文本输入框 表单 , 距离 导航栏外边距有 65 像素 ;
韩曙亮
2023/04/03
2K0
【CSS】课程网站头部制作 ③ ( 搜索栏表单测量 | 搜索栏表单代码编写 | 代码示例 )
css属性及定位操作
font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。
全栈程序员站长
2022/07/21
2.5K0
css属性及定位操作
css笔记
从HTML被发明开始,样式就以各种形式存在。不同的浏览器结合它们各自的样式语言为用户提供页面效果的控制。最初的HTML只包含很少的显示属性。 随着HTML的成长,为了满足页面设计者的要求,HTML添加了很多显示功能。但是随着这些功能的增加,HTML变的越来越杂乱,而且HTML页面也越来越臃肿。于是CSS便生了。
用户6362579
2019/09/29
7.8K0
css笔记
【移动端网页布局】流式布局案例 ③ ( 实现搜索栏功能 | 伪元素选择器 | 子绝父相 | 外边距塌陷处理 | 二倍精灵图处理方案 )
在调试模式下 , 该父容器的尺寸为 390 x 44 像素 , 该父容器的高度是 44 像素 ;
韩曙亮
2023/05/03
2.1K0
【移动端网页布局】流式布局案例 ③ ( 实现搜索栏功能 | 伪元素选择器 | 子绝父相 | 外边距塌陷处理 | 二倍精灵图处理方案 )
【CSS】课程网站横版导航栏 ( 横版导航栏测量及样式 | 代码示例 )
该盒子是处于版心位置 , 先为其设置版心的样式 , 版心宽度 1200 像素 , 水平居中 , 先将版心的样式设置给盒子 ;
韩曙亮
2023/04/06
5.3K0
【CSS】课程网站横版导航栏 ( 横版导航栏测量及样式 | 代码示例 )
【原创】CSS中的盒子模型以及设置元素居中
元素的宽度:内容区宽度 + 左右内边距宽度 + 左右边框的宽度 + 左右外边距的宽度。
零点
2023/03/03
1K0
CSS入门?一篇就够了!
CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。
对话、
2022/02/22
5.3K0
CSS入门?一篇就够了!
推荐阅读
【AI 大模型】使用 AI 大模型 编程 ② ( CodeGeeX 工具 | CodeGeeX 功能 | VSCode 安装使用 CodeGeeX | Tabby 工具 | Tabby 部署与使用 )
5190
【Web APIs】JavaScript 操作元素 ⑥ ( 关闭对话框案例 | display 属性简介 | 页面标签结构和样式 | 盒子模型细节 | 绝对布局要点 - 设置负值即可超出父容器模型 )
2020
【Web APIs】JavaScript 操作元素 ⑤ ( 修改元素样式属性 | 行内样式操作 - element.style | 类名样式操作 | 类列表样式操作 )
2130
【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )
5200
【如果你要学JS <16>】—— 表单元素的属性操作,密码显示隐藏的实现.
2860
前端之HTML和CSS
4.4K0
【移动端网页布局】Flex 弹性布局案例 ③ ( 横向导航栏 | 固定定位下面的布局设置 | 设置横向导航栏弹性布局 | 弹性布局主轴和侧轴设置 | 二倍精灵图 )
6860
【移动端网页布局】流式布局案例 ⑦ ( 水平排列的图片链接 2 | 浮动设置 | 盒子模型类型设置 | 结构伪类选择器 )
2.4K0
【移动端网页布局】流式布局案例 ⑥ ( 多排按钮导航栏 | 设置浮动及宽度 | 设置图片样式 | 设置文本 )
3.5K0
使用 CSS 的仿 GitHub 登录页面
1.8K0
【CSS】课程网站头部制作 ④ ( 搜索栏按钮测量 | 搜索栏按钮代码编写 | 代码示例 )
2.4K0
【移动端网页布局】流式布局案例 ⑤ ( 连续排列的链接图片 | 设置盒子圆角 | 超出部分隐藏 | 设置浮动布局 | 精确计算浮动元素宽度避免换行 | 设置图片宽度自适应 )
3.7K0
【Web APIs】JavaScript 操作元素 ⑦ ( 多精灵图背景设置 | 核心要点 - 设置 backgroundPosition 属性 | 清除默认样式 | )
1640
【CSS】课程网站头部制作 ③ ( 搜索栏表单测量 | 搜索栏表单代码编写 | 代码示例 )
2K0
css属性及定位操作
2.5K0
css笔记
7.8K0
【移动端网页布局】流式布局案例 ③ ( 实现搜索栏功能 | 伪元素选择器 | 子绝父相 | 外边距塌陷处理 | 二倍精灵图处理方案 )
2.1K0
【CSS】课程网站横版导航栏 ( 横版导航栏测量及样式 | 代码示例 )
5.3K0
【原创】CSS中的盒子模型以及设置元素居中
1K0
CSS入门?一篇就够了!
5.3K0
相关推荐
【AI 大模型】使用 AI 大模型 编程 ② ( CodeGeeX 工具 | CodeGeeX 功能 | VSCode 安装使用 CodeGeeX | Tabby 工具 | Tabby 部署与使用 )
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验