Python学习精粹009:使用PyCharm开发Python

一、什么是PyCharm

作为最流行的Python IDE(Integrated Development Environment,集成开发环境),PyCharm由捷克的JetBrains公司基于Java与Python所开发,最早于2010年在Python社区推出,历经十几年的发展,可在Windows、macOS和Linux等不同操作系统中使用,并提供了丰富的功能以帮助更快、更智能地进行Python相关的编程开发,主要如下:

1、智能代码辅助

包括语法高亮显示、实时错误高亮显示和快速修复、可感知上下文的智能代码补齐、代码格式化,以及自动代码重构、代码导航和结构视图、可视化调试器等。

2、完全Python支持

支持所有主要的Python实现,包括Python 2.x与3.x、Jython、IronPython、PyPy和Cython等,可与doctest、nose和attest等热门的Python测试框架进行集成,可与Coverage.py集成以测试Python程序代码覆盖率,以及Python分析器、面向Python的BDD(Behaviour-Driven Development,行为驱动开发)、线程并发可视化等。

3、全栈Web开发

为前端开发相关技术提供成熟且高效的全面支持,包括:

(1)流行的Python Web框架,如Django、Flask、Pyramid、Remote等;

(2)SSH、Docker、Vagrant等远程或虚拟技术;

(3)HTML5、CSS、JavaScript、TypeScript、Node.js(基于Chrome V8引擎的JavaScript 运行环境),以及Angular、React、Vue.js等热门前端框架;

(4)Karma、Jest、Protractor和Mocha等JavaScript测试框架;

(5)面向SQL的数据库开发,支持Oracle、SQL Server、PostgreSQL、MySQL等常用数据库;

(6)Git、SVN、Mercurial、Perforce等版本控制系统,有助于管理本地更改和应用复杂的分支操作。

4、数据科学工具

内置对Pandas、Numpy、Matplotlib等数据科学库的支持,可与Conda、Jupyter Notebook集成,通过SciView可方便查看Pandas DataFrame、Pandas Series或NumPy数组等。

关于PyCharm功能的更多信息,可参见https://www.jetbrains.com/zh-cn/pycharm/features。

此外,PyCharm还分为免费的PyCharm Community Edition(社区版)与付费的PyCharm Pro(专业版,有30天的免费试用期),前者专为“纯Python”开发所设计,后者则为前端、数据库等开发提供了丰富功能,为Python Web框架、数据科学、远程开发、Python分析器等提供支持,可参见https://www.jetbrains.com/zh-cn/products/compare/?product=pycharm&product=pycharm-ce,主要如下:

PyCharm Pro

(专业版)

PyCharm Community Edition

(社区版)

语言

Python

Python

Cython

Rust(通过插件)

Rust(通过插件)

Dart(通过插件)

Dart(通过插件)

SQL

HTML

HTML

XML、JSON、YAML

XML、JSON、YAML

XSLT、XPath

XSLT、XPath

Markdown

Markdown

JavaScript、TypeScript

CSS、Sass、SCSS、Less

Haml、Slim、Liquid(通过插件)

框架支持

React、React Native

Angular

Node.js

Next.js

Vue.js

Django

Flask

FastAPI

PyQT

PyQT

Jupyter Notebook

构建工具

npm

Webpack

Gulp、Grunt

Virtualenv

Virtualenv

Pipenv

Pipenv

Poetry

Poetry

Vite

集成开发者工具

嵌入式终端

嵌入式终端

数据库工具

HTTP客户端

版本控制

Git、GitHub、GitLab

Git、GitHub、GitLab

Subversion

Subversion

Mercurial

Mercurial

Perforce

部署

Docker、Docker Compose

Docker、Docker Compose

Kubernetes

协作和团队合作

协作开发

协作开发

通过JetBrains帐户设置同步

通过JetBrains帐户设置同步

Space 集成

Space 集成

问题跟踪器集成

问题跟踪器集成

外观

自定义主题

自定义主题

远程解释器

SSH

Docker、Docker Compose

WSL

Vagrant

授权许可

商用

开源构建

定价

每个用户,第一年2050元(CNY,第二年1640元(CNY,第三年起1230元(CNY

免费

二、下载安装PyCharm

访问https://www.jetbrains.com/zh-cn/pycharm/或https://www.jetbrains.com/zh-cn/pycharm/download/other.html,下载对应操作系统版本(Windows、Linux、Mac)的PyCharm安装程序(专业版或社区版),并按照安装向导的提示逐步完成安装。

下面以在Windows 11安装PyCharm Community Edition(社区版)为例:

1、点击运行PyCharm Community Edition(社区版)的安装程序,进入安装向导的欢迎界面:

2、选择安装位置:

3、安装选项,包括“创建桌面快捷方式”、“更新PATH变量”、“更新上下文菜单”、“创建关联”,具体如下:

4、选择开始菜单目录:

5、完成安装:

三、初始配置PyCharm

开始使用PyCharm之前,可根据自己的偏好来初始设置与优化开发环境,如PyCharm的外观主题、编辑器的字体和样式、项目的解释器、快捷键等。

在PyCharm启动界面,选择右侧的“Customize”(自定义)选项卡,可设置其“Color theme”(配色方案)、“Accessibility”(易用性)中的字体大小,“Keymap”(快捷键映射)等,也可点击下方的“All setting...”进行更多设置。

在启动PyCharm之后,也可通过依次选择“File | Settings”菜单(快捷键为Ctrl+Alt+S),进入PyCharm的配置窗口。

  1. 外观(Appearance

(1)配色方案(Color theme)

依次选择“File | Settings | Appearance & Behavior | Appearance”菜单,或直接在左上方的搜索框中输入“theme”关键字快速找到对应的设置菜单。

在“Theme”下拉列表中选择配色方案(如Dark、Light、Light with Light Header、Darcula、High Contrast、IntelliJ Light),可构建“Sync the OS”与当前操作系统的配色方案进行同步,或点击“Get more themes”获取更多配色方案,还可在“Zoom”下拉框中选择缩放比例。

(2)字体(Font)

依次选择“File | Settings | Appearance & Behavior | Appearance”菜单,或直接在左上方的搜索框中输入“font”关键字快速找到所有与字体设置相关的菜单。

勾选“use custom font”后在其下拉列表中选择相应字体,并通过“Size”的下拉列表选择PyCharm界面显示的字体大小。

2、快捷键(Keymap)

依次选择“File | Settings | Keymap”菜单,或直接在左上方的搜索框中输入“keymap”关键字快速找到与键盘映射相关的设置菜单。

在下拉列表中选择键盘映射方案,如Windows、Emacs、Sublime Text,或点击下方的“Get more keymaps in Settings | Plugins”获取更多键盘映射方案,还可在其右侧的搜索框中输入关键字查找与此相关的所有快捷键设置(默认或自定义),如输入“reformat”可找到所有与重新格式化相关的快捷键设置。

3、Python解释器(Python Interpreter)

依次选择“File | Settings | Python Interpreter”菜单,或直接在左上方的搜索框中输入“interpreter”关键字快速找到对应的设置菜单。

点击“Add Interpreter”可添加本地已安装的Python解释器,在此选择“System Interpreter”及其所在路径。

也可在下拉列表中选择已添加的其他Python解释器。

4、编辑器(Editor)

依次选择“File | Settings | Editor”菜单,或直接在左上方的搜索框中输入“editor”关键字快速找到对应的设置菜单。

在“Editor”(编辑器)的设置选项中,可对代码编辑时的智能代码辅助(如自动导入、代码完成、代码折叠、后缀补齐、智能键)、字体(样式以及大小与行距)、配色方案(与PyCharm界面的配色方案无关)、代码风格(如Python的制表符和缩进、空格、换行和括号、空行、导入等的格式规范)等。

5、导入导出与恢复PyCharm设置

依次选择“File | Manage IDE Settings”菜单,可选择对PyCharm的设置进行导入(Import Settings...)、导出(Export Settings...)、恢复为默认(Restore Default Settings...)、通过JetBrains账号自动同步(Restore Default Settings...)等操作,以便在新环境中无需重新逐一设置。

四、创建Python项目

1、创建Python项目

在启动PyCharm的欢迎窗口选择“New Project”(创建新项目),或启动PyCharm之后依次点击“File | New Project...”,会提示选择要创建的项目类型。

PyCharm专业版可支持更多项目类型,如Pure Python、Django、Flask、Google App Engine、Pyramid、Angular CLI、Bootstrap、Express、HTML5 Boilerplate、Next.js、Node.js、React、React Native、Vite、Vue.js。

在PyCharm社区版中,默认选择“Pure Python”(纯粹的Python),并指定项目的名称、存储位置、使用的Python解释器/环境等,如下所示:

2、指定Python解释器、虚拟环境

在“Interpreter Type”可以指定PyCharm使用哪个Python解释器来执行所创建项目中的代码,可选择已存在的Python解释器及其版本,也可添加其他的本地Python解释器,或是创建虚拟环境。

简单来说,虚拟环境是独立、隔离的环境,可在其中管理当前项目所使用的库和软件包,当一个项目更改了所使用库及软件包的特定内容时,不会影响其他项目,所以,虚拟环境也是组织和划分Python项目的良好实践。例如,在两个项目中分别使用不同版本的requests模块(一个提供简单HTTP请求方法的Python第三方库),就可使用虚拟环境分别进行管理。

在创建Python相关项目时,有很多可用的工具,如Virtualenv、Pipenv、Poetry、Conda,它们都是虚拟环境和软件包管理器,提供了不同功能和控制。

在PyCharm所创建项目左侧面板的“Project”视图中,可看到当前项目(“FirstProject”)下面自动生成了虚拟环境相关的依赖包及配置信息等(在.venv文件夹中)。

3、创建Python文件

右键点击所创建的项目(如“FirstProject”),在展开的菜单项中依次选择“New | Python File”,输入指定名称(如“HelloWorld”),则会在当前项目文件夹下新建对应的py文件并打开编辑器。

右键单击选定的Python文件,在展开的菜单项中依次选择“Refactor | Rename...”,(或按下快捷键Shift + F6),进行重命名,还可对此Python文件进行移动(Move File...,快捷键为F6)、复制(Copy File...,快捷键为F5)、安全删除(Safe Delete...,快捷键为Alt + Delete)、转换为Python包(Convert to Python Package)等操作。

4、编辑Python代码

在所打开Python文件对应的编辑器中,按照惯例,输入以下内容:

if __name__ == '__main__':

    print('Hello, World!')

右键单击选定的Python文件(如HelloWorld.py),在展开的菜单项中选择“Reformat Code'”(快捷键为Ctrl + Alt + L),可对编辑器中的代码进行重新格式化,使其更加规范、美观、易读。

5、运行Python程序

右键单击选定的Python文件(如HelloWorld.py),在展开的菜单项中选择“Run 'HelloWorld'”(快捷键为Ctrl + Shift + F10),则会在PyCharm窗口的下方出现一个运行面板,显示刚运行的Python程序的有关信息,并打印输出结果,如下所示:

C:\PycharmProjects\FirstProject\.venv\Scripts\python.exe C:\PycharmProjects\FirstProject\HelloWorld.py

Hello, World!

Process finished with exit code 0

此时,在运行面板的左侧,有一个绿色三角形的重运行按钮(快捷键为Ctrl + F5),点击可重新运行当前的Python程序。

还可以在编辑器中,点击右键选择“Run 'HelloWorld'”,或“Execute Line in Python Console”(快捷键为Alt + Shift + E)、“Run File in Python Console”。

​​​​​​​五、安装第三方库

在PyCharm中,可通过图形化界面或输入终端命令来为当前项目安装需要的第三方库。

1、图形化界面方式

依次选择“File | Settings”菜单(快捷键为Ctrl+Alt+S),然后单击当前项目(如Project:FirstProject)中的“Python Interpreter”菜单,在所打开窗口的列表中,显示了已安装第三方库的名称、当前版本、最新版本等信息。

点击列表左上方的“+”按钮,打开“Available Packages”窗口,在搜索框中输入要安装的第三方库名称,如“openpyxl”(用于处理Excel文件的Python第三方库),在搜索结果列表中选择对应的第三方库并指定其版本(“Specify version”),点击“Install Package”,即可对此进行自动下载与安装。

此外,点击列表上方的“-”、“↥”或“▲”按钮,可分别移除、升级已安装的第三方库。

2、终端命令方式

依次选择“View | Tool Windows | Teminal”菜单,在打开的终端面板的命令行提示符下,输入并执行以下命令,可安装相应的第三方库,如:

pip install openpyxl

3、wheel文件方式

如在离线环境下,或通过上述方式安装第三方库的速度较慢,可先下载第三方库的对应wheel文件,再按照以下方法进行安装。

访问https://pypi.org/,输入第三方库的名称,如“pandas”,在搜索结果列表中选择合适的版本(如pandas 2.1.4),然后下载适配相应操作系统的wheel文件至本地,如pandas-2.1.4-cp312-cp312-win_amd64.whl。

在PyCharm打开终端面板的命令提示符(依次选择“View | Tool Windows | Teminal”菜单),输入并执行以下命令,可安装相应的第三方库,如:

pip install D:\pandas-2.1.4-cp312-cp312-win_amd64.whl

此外,在使用pip命令安装第三方库之前,建议执行以下终端命令,先将pip升级到最新版本:

python.exe -m pip install --upgrade pip

也可在https://pypi.org/搜索并下载到pip最新版本对应的wheel文件至本地后,通过终端命令方式进行安装,如:

pip install D:\pip-23.3.2-py3-none-any.whl

​​​​​​​六、导出导入依赖包清单

不同的Python项目可能依赖了不同的第三方库及版本,可使用PyCharm的相关功能为Python项目导出或导入相应的依赖包清单。

1、导出依赖清单

依次选择“Tools | Sync Python Requirements...”菜单,可将依赖的第三方库及其版本信息导出至指定文件,默认在当前项目的根目录下生成requirements.txt文件。

可选择不同的版本兼容性策略,如兼容版本(Compatible version(~=x.y.z),默认)、大于或等于(Greater or equal(>=x.y.z))、强制等于(Strong equality(==x.y.z))、不指定版本(Don't specify version)。

此外,还可以设置以下选项:

(1)移除未使用的依赖(Remove unused requirements)。

(2)修改基础文件(Modify base file(defined with -r or --requirement))。

(3)如果现有版本规格与当前版本一致,则保留现有版本规格(Keep existing version specifier if it matches the current version),默认勾选。

也可依次选择“View | Tool Windows | Teminal”菜单,执行以下终端命令以生成相应的requirements.txt,如:

pip freeze > requirements.txt

在Python开发中,导出当前项目所需依赖包的清单文件(requirements.txt)应是始终遵守的良好实践,以支持跨平台工作及协作的平滑过渡。

2、导入依赖清单

在新环境中,打开包含了依赖包清单的Python项目(在其根目录下有对应的requirements.txt文件),依次选择“View | Tool Windows | Teminal”菜单,在打开的终端面板的命令行提示符下,输入以下命令,即可导入并安装相应依赖包:

pip install -r requirements.txt

​​​​​​​七、安装第三方插件

1、通过Marketplace安装插件

通过安装第三方插件,可使PyCharm具备更丰富的功能,例如:Key Promoter X(快捷键管理)、ideaVim(使用Vim编辑代码)、CSV Editor(CSV文件编辑)、Ini(为.ini文件编辑提供支持)、MarkDown(编辑MarkDown文件)、DataGraph(为JSON、YAML、XML的复杂数据结构提供可视化交互方式)、Statistic(对项目的文件及代码行数等进行统计)、Chinese (Simplified) Language Pack(中文语言包)、Gerry Themes(第三方配色方案)、Material Theme UI(第三方配色方案)、Dart(为Dart编程语言提供支持)、Perl(为Dart编程语言提供支持)等。

依次选择“File | Settings | Plugins”菜单,然后选择“Marketplace”选项卡,在搜索框中输入第三方插件名称,如“ideaVim”,在搜索结果列表中选择对应插件并点击“Install”即可下载并安装,可能会提示重启IDE后才可使用。

2、离线安装插件文件

访问https://plugins.jetbrains.com/pycharm,在搜索框左侧选择PyCharm对应版本(社区版、专业版),然后在搜索框中输入第三方插件的名称,如“CSV Editor”,在搜索结果列表中选择相应版本的插件并下载至本地。

依次选择“File | Settings | Plugins”菜单,点击“Installed”选项卡右侧的配置按钮,在弹出的列表中选择“Install Plugin from Disk...”(支持JAR或ZIP压缩包格式),选择保存至本地的第三方插件文件,如D:\CSVEditor-3.2.3-233.zip,即会安装,可能会提示重启IDE后才可使用。

​​​​​​​八、导入外部项目

在进行跨平台或跨系统的协作项目时,可将外部项目导入至PyCharm的工作区。

依次选择“File | Open...”菜单,浏览并选择外部项目所在位置,如C:\PycharmProjects\FirstProject,即可导入至PyCharm的工作区。

如要从版本控制系统导入外部项目,依次选择“Tools | Get from Version Control...”菜单,选择相应的版本控制系统,如Git、Mercurial、Subversion,输入URL、本地文件夹等信息。

如提示未安装Git,可点击“Download and install”进行下载与安装。

此外,使用PyCharm进行代码检查、自定义代码自动补全、重构、版本控制、测试与调试以及剖析、自定义PyCharm工作区、定制解释器和虚拟环境、数据库开发、Web开发、数据科学计算等,将在后续章节中进一步阐述。

​​​​​​​九、PyCharm常用快捷键

可访问PyCharm的在线帮助文档(https://www.jetbrains.com/help/pycharm/mastering-keyboard-shortcuts.html),获取关于其快捷键的更多信息,也可直接下载PyCharm默认的快捷键清单(PDF文件),其中:

(1)Windows版本的下载地址为:

https://resources.jetbrains.com/storage/products/pycharm/docs/PyCharm_ReferenceCard.pdf

(2)macOS版本的下载地址为:

https://resources.jetbrains.com/storage/products/pycharm/docs/PyCharm_ReferenceCard_mac.pdf

此外,于在线参考文档中,支持进一步查找PyCharm相应版本中每项快捷键的具体使用场景及操作步骤,如https://www.jetbrains.com/help/pycharm/2023.1/keymap-reference.html。

下面为PyCharm的常用快捷键(Windows):

在IDE中查找任何操作

Ctrl + Shift + A

创建与编辑

显示意图操作(智能提示)

Alt  +  Enter

基本的代码补齐(类、方法、属性)

Ctrl  +  Space

智能代码补全

Ctrl  +  Shift  +  Space

类型名称补全

Ctrl  +  Alt  +  Space

语句完成

Ctrl  +  Shift  +  Enter

参数信息(在方法中调用参数)/上下文信息

Ctrl  +  P / Alt  +  Q

快速定义

Ctrl  +  Shift  +  I

快速查看文档/外部文档

Ctrl  +  Q / Shift  +  F1

生成代码

Alt  +  Insert

覆盖/实现成员

Ctrl  +  O / Ctrl  +  I

用......包围(选中)

Ctrl  +  Alt  +  T

使用行注释

Ctrl  +   /

扩展/缩小选择范围(选中增加的代码块、回到之前状态)

Ctrl  +  W / Ctrl  +  Shift  +  W

优化导入

Ctrl  +  Alt  +  O

自动缩进行

Ctrl  +  Alt  +  I

剪切/复制/粘贴

Ctrl  +  X / Ctrl  +  C / Ctrl  +  V

复制文档路径

Ctrl  +  Shift  +  C

从剪贴板历史记录粘贴

Ctrl  +  Shift  +  V

复制当前行或或所选内容

Ctrl  +  D

上下移动行

Ctrl  +  Shift  +  Up / Down

删除插入符号处的行

Ctrl  +  Y

连接/分割行

Ctrl  +  Shift  +  J / Ctrl  +  Enter

开始新的一行(另起一行)

Shift  +  Enter

切换大小写

Ctrl  +  Shift  +  U

展开/折叠代码块

Ctrl  +  NumPad  + / -

全部展开/折叠

Ctrl  +  Shift  +  NumPad  + / -

全部保存

Ctrl  +  S

版本控制

弹出VCS操作窗口...

Alt  +  `

提交(项目)

Ctrl  +  K

更新项目

Ctrl  +  T

最近更改(查看最近的变化)

Alt  +  Shift  +  C

恢复

Ctrl  +  Alt  +  Z

推送...

Ctrl  +  Shift  +  K

下一个/上一个更改

Ctrl  +  Alt  +  Shift  +  Down / Up

管理IDE

查找操作...

Ctrl  +  Shift  +  A

打开工具窗口

Alt  +  [0-9]

同步

Ctrl  +  Alt  +  Y

快速切换方案...

Ctrl  +  `

设置...

Ctrl  +  Alt  +  S

跳转到资源/导航栏

F4 / Alt  +  Home

跳转到最近使用的工具窗口

F12

隐藏活动的/所有的工具窗口

Shift  +  Esc / Ctrl  +  Shift  +  F12

跳转到下一个/上一个编辑器选项卡

Alt  +  Right / Alt  +  Left

跳转到编辑器(从工具窗口)

Esc

关闭活动的选项卡/窗口

Ctrl  +  Shift  +  F4 / Ctrl  +  F4

查找

在任意位置搜索

双击 Shift

查找/替换

Ctrl  +  F / R

在路径中查找/在路径中替换

Ctrl  +  Shift  +  F / R

下一次/上一次出现

F3 / Shift  +  F3

在标记处查找单词

Ctrl  +  F3

跳转到类/文件

Ctrl  +  N / Ctrl  +  Shift  +  N

跳转到文件成员(弹出文件结构)

Ctrl  +  F12

跳转到符号

Ctrl  +  Alt  +  Shift  +  N

从符号导航

跳转到声明

Ctrl  +  B

跳转到类型声明(仅限 JavaScript)

Ctrl  +  Shift  +  B

跳转到父方法、父类

Ctrl  +  U

跳转到实现

Ctrl  +  Alt  +  B

查找用法/在文件中查找用法

Alt  +  F7 / Ctrl  +  F7

在文件中用高亮显示用法

Ctrl  +  Shift  +  F7

显示用法

Ctrl  +  Alt  +  F7

重构与清理

重构当前的...

Ctrl  +  Alt  +  Shift  +  T

复制... / 移动...

F5 / F6

安全删除...

Alt  +  Delete

重命名...

Shift  +  F6

更改签名...

Ctrl  +  F6

内联...

Ctrl  +  Alt  +  N

提取方法

Ctrl  +  Alt  +  M

引入变量/参数

Ctrl  +  Alt  +  V / P

引入字段/常量

Ctrl  +  Alt  +  F / C

重新格式化代码

Ctrl  +  Alt  +  L

分析与探索

显示错误描述

Ctrl  +  F1

下一条、前一条高亮突出显示的错误

F2 / Shift  +  F2

按名称运行检查...

Ctrl  +  Alt  +  Shift  +  I

类型/调用的层次结构

Ctrl  +  H / Ctrl  +  Alt  +  H

在上下文中导航

选择“项目视图”后,使用该快捷键在“Select In(选择范围)”弹出窗口中进行导航并自动查找文件

Alt  +  F1

最近查看/最近位置

Ctrl  +  E / Ctrl  +  Shift  +  E

最近编辑的位置

Ctrl  +  Shift  +  Back

向后/向前导航

Ctrl  +  Alt  +  Left / Right

跳转到上一个/下一个方法

Alt  +  Up / Down

跳转到行/列...

Ctrl  +  G

转到代码块的结束/开始

Ctrl  +  ] / [

添加到收藏夹

Alt  +  Shift  +  F

切换书签

F11

使用助记符切换书签

Ctrl  +  F11

跳转到标识的书签

Ctrl  +  [0-9]

显示书签

Shift  +  F11

构建、运行和调试

运行上下文配置

Ctrl  +  Shift  +  F10

运行/调试所选配置

Alt  +  Shift  +  F10 / F9

运行/调试当前配置

Shift  +  F10 / F9

跳过/步入

F8 / F7

智能步入

Shift  +  F7

步出

Shift  +  F8

运行到光标处/强制运行到光标处

Alt  +  F9 / Ctrl  +  Alt  +  F9

显示执行点

Alt  +  F10

验证表达式...

Alt  +  F8

停止

Ctrl  +  F2

停止后台进程

Ctrl  +  Shift  +  F2

恢复程序

F9

切换行断点(添加/取消断点)

Ctrl  +  F8

切换临时行断点

Ctrl  +  Alt  +  Shift  +  F8

编辑/查看断点

Ctrl  +  Shift  +  F8

  • 31
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值