PyCharm新手入门

前言

在之前《Python集成开发工具的选择》一文中介绍了python初学者可以使用Jupyter Notebook,Jupyter Notebook简单易用,可以用来练习代码编写,但是实际生产开发环境使用这个工具是远远不够用的,因为实际软件开发中需要软件调试、版本管理、单元测试、软件发布,这些功能Jupyter Notebook所不具备的。今天就介绍一下python开发中最常用的IDE:PyCharm 。它由 JetBrains 开发,功能强大,广泛用于 Python 开发。

一、Pycharm简介

PyCharm 有两个版本一个是免费的社区版,一个是收费的免费企业版,

下图是pycharm社区版和企业收费版的功能的对比。

功能 社区版 (Community Edition) 专业版 (Professional Edition)
基本编辑和开发功能
代码补全
调试器和测试运行器
VCS(版本控制)集成
局部历史记录
Python 重构
代码检查和快速修复
Python 控制台
集成终端
Python 解释器配置
Django 支持
Flask 支持
其他 Web 框架支持(如 Pyramid、Web2py)
HTML, CSS 和 JavaScript 编辑器
JavaScript 调试器
Live Edit
Docker 集成
数据库和 SQL 支持
IPython Notebook 支持
远程开发支持(SSH, Vagrant, WSL)
科学工具(如交互式 Python 控制台、科学模式)
多框架单元测试支持(pytest, unittest 等)
JavaScript、TypeScript 支持
Python Web 框架模板语言支持(如 Jinja2)
专业 IDE 功能(如 UML 视图、数据库工具)
Anaconda 支持
多语言支持(如 PHP, Ruby, Go, 等)
高级调试功能(如 Attach to Process, 多个调试器配置)
性能分析(Profiling)

对于个人开发者和中小团队,免费的社区版已经够用了。当然你享受更多尊贵的服务而选择付费,也是没人拦着你的。接下来从软件安装、汉化、基础配置、软件调试、git版本管理、单元测试、打包发布等几个方面详细阐述PyCharm 的常用功能。

二、PyCharm安装和汉化

2.1下载PyCharm

官方下载地址:https://www.jetbrains.com/zh-cn/pycharm/download/other.html

我的电脑是windows,就选择下载了windows社区版。

2.2安装PyCharm



2.3软件汉化:

安装后选择路径:File->Settings->Plugins,在以下页面搜索:中文语言包,如下图搜索到的第一个就是汉化包,点击右下【OK】安装即可。

安装完成后,弹出页面点击【Restart】按钮重启即可。

三、基础功能

3.1 编程页面的设置

1. 字体设置

在路径【文件】/【设置】/【编辑器】/【字体】打开设置字体页面。

2. 页面配色

在路径【文件】/【设置】/【编辑器】/【配色方案】打开设置配置颜色方案页面。

3. 文件编码设置

在路径【文件】/【设置】/【编辑器】/【文件编码】打开设置文件编码页面。

建议文件编码统一设置UTF8

3.2 虚拟环境设置

在创建一个新的Python项目时可以根据需要设置虚拟环境,这个虚拟环境即可以选择virtualenv创建的虚拟环境也可以选择conda创建的虚拟环境。当然也可以选择不用虚拟环境,直接用本地python解释器,但是不建议这样做,这样做会给你带来很多麻烦。具体如何创建和使用虚拟环境请参考之前两篇文章《Anaconda的安装和使用》
《virtualenv和virtualenvwrapper的使用》

以下是用conda创建虚拟项目步骤:

  1. 创建新的conda环境pycharm,安装3.10版本的python
bash 复制代码
conda create --name pycharmpython=3.10
  1. 创建项目
    打开【文件】/【创建项目】,配置解释器为刚才创建的名为pycharm的conda环境。


3.3 程序调试

在实际开发过程中,我们会遇到程序有错误(bug)的情况,这个时候我们就需要通过调试找出问题,因为在在调试过程中可以观察程序每个变量在执行过程中的数值变化,通过观察这些数据变化我们就能发现并解决问题。当我们创建完项目后,我们编写一段程序,并用这个程序演示代码的调试过程。这个程序主要功能是在命令行,用户输入一个人的出生日期,程序计算出这个日期出生的人已经活了多少天,还有多少天退休。

代码如下:

python 复制代码
from datetime import datetime
def calculate_days_of_life(birth_date, retirement_age=60):
    """
    计算从出生日期到今天活了多少天,以及距离退休还有多少天。
    
    :param birth_date: 出生日期,格式为 'YYYY-MM-DD'
    :param retirement_age: 退休年龄,默认为60岁
    :return: 一个元组,第一个元素是活了多少天,第二个元素是距离退休还有多少天
    """
    # 将字符串日期转换为datetime对象
    birth_date_obj = datetime.strptime(birth_date, '%Y-%m-%d')
    # 获取当前日期
    today = datetime.today()
    # 计算活了多少天
    days_lived = (today - birth_date_obj).days
    # 计算退休日期
    retirement_date = birth_date_obj.replace(year=birth_date_obj.year + retirement_age)
    # 如果退休日期小于今天,则认为已经退休
    if retirement_date < today:
        days_until_retirement = 0
    else:
        # 计算距离退休还有多少天
        days_until_retirement = (retirement_date - today).days
    return days_lived, days_until_retirement

def main():
    # 用户输入出生日期
    user_birth_date = input("请输入您的出生日期 (格式 YYYY-MM-DD): ")
    try:
        # 调用函数并接收结果
        days_lived, days_until_retirement = calculate_days_of_life(user_birth_date)
        # 打印结果
        print(f"您已经出生了 {days_lived} 天。")
        if days_until_retirement > 0:
            print(f"您距离退休还有 {days_until_retirement} 天。")
        else:
            print("您已经退休了。")
    except ValueError:
        print("输入的日期格式不正确,请确保使用 YYYY-MM-DD 格式。")

if __name__ == "__main__":
    main()

这里对新手来讲介绍一下调试的基础操作:

  • 调试: 快捷键 Shift+F9
  • 断点: 首先介绍调试中断点的概念,断点就是在调试程序时,程序执行会停的点。在程序想要增加断点的地方双击即可,断点可以设置多个。
  • 单步执行: 调试时程序按照一行一行执行,单步进入函数内部执行。快捷键是F8
  • 断点执行: 调试时程序只在断点的地方停留。快捷键是F9
  • 步入: 调试时,如果执行的这行代码有引用其他模块的函数,会进入进入其他模块调试。快捷键是F7
  • 步出: 跳出其他模块,重新回到原来的程序执行。快捷键是Shift+F8

3.4 常用快捷键

1. 通用操作

  • 打开设置:Ctrl+Alt+S (Windows/Linux),Cmd+ ,(Mac)
  • 打开项目:Ctrl+Shift+O(Windows/Linux),Cmd+Shift+O(Mac)
  • 切换全屏模式:Ctrl+Shift+F11(Windows/Linux),Cmd+Shift+F11(Mac)
  • 最近文件:Ctrl+E(Windows/Linux),Cmd+E(Mac)

2. 编辑操作

  • 复制行/选中块:Ctrl+D(Windows/Linux),Cmd+D(Mac)
  • 删除行:Ctrl+Y(Windows/Linux),Cmd+Backspace(Mac)
  • 移动行/选中块:Shift+Alt+Up/Down(Windows/Linux),Alt+Shift+Up/Down(Mac)
  • 展开/折叠代码块:Ctrl+Shift+Plus/Minus(Windows/Linux),Cmd+Plus/Minus(Mac)

3.导航和搜索

  • 查找文件:Ctrl+Shift+N (Windows/Linux),Cmd+Shift+O(Mac)
  • 查找类:Ctrl+N (Windows/Linux),Cmd+O(Mac)
  • 查找方法/函数:Ctrl+Shift+Alt+N (Windows/Linux),Cmd+Shift+Alt+O(Mac)
  • 跳转到定义:Ctrl+B 或 Ctrl+Click(Windows/Linux),Cmd+B 或 Cmd+Click(Mac)
  • 查找和替换:Ctrl+F(查找),Ctrl+R(替换)(Windows/Linux),Cmd+F(查找),Cmd+R(替换)(Mac)

4.代码辅助

  • 代码补全:Ctrl+Space(Windows/Linux),Ctrl+Space(Mac)
  • 智能补全:Ctrl+Shift+Space(Windows/Linux),Ctrl+Shift+Space(Mac)
  • 快速修复:Alt+Enter(Windows/Linux),Option+Enter(Mac)
  • 生成代码(如构造函数、Getter/Setter):Alt+Insert(Windows),Cmd+N(Mac)

5.重构

  • 重命名:Shift+F6(Windows/Linux),Shift+F6(Mac)
  • 提取变量:Ctrl+Alt+V(Windows/Linux),Cmd+Option+V(Mac)
  • 提取方法:Ctrl+Alt+M(Windows/Linux),Cmd+Option+M(Mac)

四、进阶功能

4.1 git版本管理

pycharm已经集成git的版本管理功能,我们可以在pycharm中建立git本地仓库,并将代码托管到github上。

下面介绍pycharm中git的基本使用

1. 添加github账号

打开路径【文件】/【设置】/【版本控制】/【Github】,点击"+"添加github账号。





2. git创建本地仓库

打开路径【版本控制】/【创建Git仓库】

3 git提交代码

4. git推送代码到github

  • 命令行添加远程仓库
bash 复制代码
git remote add origin https://github.com/luohanxi0421/HermeticCode.git
  • 推送代码到远程仓库

4.2 实时模版(Live Templates)

实时模板允许你定义和插入可重用的代码片段,通过简单的快捷方式触发。这些代码片段可以包含变量占位符,自动替换为你在插入时指定的值。

1.使用实时模板

  • 快捷方式:在编辑器中输入模板的缩写(abbreviation)并按 Tab 键,模板会自动展开为完整的代码片段。
  • 例:输入 main 并按 Tab 键,插入一个 Python 的主函数模板:
python 复制代码
if __name__ == '__main__':
    main()

2.实时模板的常用缩写

  • main:插入一个 Python 主函数结构。
  • def:插入一个函数定义。
  • for:插入一个 for 循环。
  • if:插入一个 if 语句。

3.创建和管理实时模板

打开实时模板设置 :【文件】/【设置】/【编辑器】/【实时模版】

创建新模板:

在 Python 模板组下,点击 +,选择 实时模板。

配置模板:

Abbreviation:abc

Description:创建类的代码

Template Text:

python 复制代码
class $NAME$:
    def __init__(self, $PARAM$):
        self.$PARAM$ = $PARAM$        
    def $METHOD$(self):
        pass

模版文本中像这种 P A R A M PARAM PARAM用两个$符包裹的就是变量,可以在编辑变量中设置他的值。

这里表达式可以动态给变量复制,比如表达式选择date(),NAME会替换为添加时的日期,默认值是静态赋值,这两个有一个赋值即可,两者都空着,生成代码时,变量占据的位置也同样空着。

相关推荐
哇咔咔哇咔30 分钟前
【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
python·conda·virtualenv
CSXB991 小时前
三十四、Python基础语法(文件操作-上)
开发语言·python·功能测试·测试工具
亚图跨际2 小时前
MATLAB和Python及R潜变量模型和降维
python·matlab·r语言·生物学·潜变量模型
IT古董2 小时前
【机器学习】决定系数(R²:Coefficient of Determination)
人工智能·python·机器学习
德育处主任Pro2 小时前
『Django』APIView基于类的用法
后端·python·django
Star Patrick2 小时前
算法训练(leetcode)二刷第十九天 | *39. 组合总和、*40. 组合总和 II、*131. 分割回文串
python·算法·leetcode
武子康3 小时前
大数据-213 数据挖掘 机器学习理论 - KMeans Python 实现 距离计算函数 质心函数 聚类函数
大数据·人工智能·python·机器学习·数据挖掘·scikit-learn·kmeans
写点什么啦3 小时前
使用R语言survminer获取生存分析高风险和低风险的最佳截断值cut-off
开发语言·python·r语言·生存分析·x-tile
武子康3 小时前
大数据-214 数据挖掘 机器学习理论 - KMeans Python 实现 算法验证 sklearn n_clusters labels
大数据·人工智能·python·深度学习·算法·机器学习·数据挖掘
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-Okex K线数据
人工智能·python·机器学习·数据挖掘