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
conda create --name pycharmpython=3.10
  1. 创建项目
    打开【文件】/【创建项目】,配置解释器为刚才创建的名为pycharm的conda环境。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.3 程序调试

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

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 = 0else:# 计算距离退休还有多少天days_until_retirement = (retirement_date - today).daysreturn days_lived, days_until_retirementdef 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

  • 命令行添加远程仓库
git remote add origin https://github.com/luohanxi0421/HermeticCode.git
  • 推送代码到远程仓库
    在这里插入图片描述

4.2 实时模版(Live Templates)

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

1.使用实时模板

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

2.实时模板的常用缩写

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

3.创建和管理实时模板

打开实时模板设置:【文件】/【设置】/【编辑器】/【实时模版】
在这里插入图片描述

创建新模板:
在 Python 模板组下,点击 +,选择 实时模板。

配置模板:
Abbreviation:abc
Description:创建类的代码
Template Text:

class $NAME$:def __init__(self, $PARAM$):self.$PARAM$ = $PARAM$        def $METHOD$(self):pass

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/web/30607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理(Wrong Question)

目录 一、计算机系统概述 *1.1 计算机发展历程 1.2 计算机系统层次结构 1.3 计算机的性能指标 二、 数据的表示和运算 2.1 数制和编码 2.2 运算方法和运算电路 2.3 浮点数的表示与运算 三、存储系统 3.1 存储器概述 3.2 主存储器 3.3 主存储器与CPU的连接 3.4 外部…

面试技巧:正确回答JavaScript中Map和Object的选择问题

在JavaScript的面试中&#xff0c;对于何时使用Map和Object的选择问题&#xff0c;是一个常见的考察点。这两个数据结构都能存储键值对&#xff0c;但它们各有优势和适用场景。本文将深入探讨两者的区别&#xff0c;并通过实际代码示例来指导您如何选择。 基本概念 Map&#…

MFC扩展库BCGControlBar Pro v35.0

LINK : fatal error LNK1104: 无法打开文件“BCGCBPRO2800U140.lib” BCGControlBar v25.0版本 环境VS2015&#xff0c;在运行程序时出现提示错误 &#xff1a;LINK : fatal error LNK1104: 无法打开文件“BCGCBPRO2800U140.lib” 1、需要编译一下BGCControlBar&#xff0c;在…

串口rx + RAM + LCD

REVIEW 昨天摸鱼怪发现高两位的数据写入or读出存在问题&#xff1a; RAM 串口的简单应用-CSDN博客 1. 今日摸鱼任务 UART_RX RAM LCD 来显示一下是 rx or tx 的问题 2. 代码部分 rx_ram_lcd.v module rx_ram_lcd(input clk ,input reset_n ,input uart_rx ,output …

数据结构试题 20-21

真需要就死记吧 二叉树遍历-先序(非递归)【图解代码】_哔哩哔哩_bilibili 解释一下步骤&#xff1a; 一个循环为&#xff1a; 1.取节点 2.放右子树 3.放左子树 每次循环&#xff0c;都要从栈里取出一个节点 先放右子树&#xff0c;再放左子树 那这道题就是&#xff0c;先放1&am…

计算机组成原理必备知识点

计算机组成原理必备知识点 前言 本文档由本人复习计算机组成原理期末考试所总结&#xff0c;所有习题以及知识点的页数参考2025年王道计算机组成原理 中断处理过程 硬件完成 1.关中断 2.保存断点 3.中断服务程序寻址 中断程序完成 4.保存现场和屏蔽字 5.开中断 6.执…

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验2 MAC地址,IP地址,ARP协议

一、实验目的 1.掌握计算机网络的寻址问题&#xff1b; 2.验证MAC地址与IP地址的关系&#xff1b; 3.了解ARP协议的作用。 二、实验要求 1.使用Cisco Packet Tracer仿真平台&#xff1b; 2.观看B站湖科大教书匠仿真实验视频&#xff0c;完成对应实验。 三、实验内容 1.构建网络…

ASP.NET MVC企业级程序设计(增删,页面水平排列,字符串拼接,非空,添加框内默认提示)

目录 题目&#xff1a; 实现过程 控制器代码 DAL BLL Index Deile 题目&#xff1a; 实现过程 控制器代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcApplication1.Models;namespac…

双通道-程控绝缘测试电阻箱的性能

双通道-程控绝缘测试电阻箱是高精度、高性能的电气测量设备&#xff0c;广泛应用于电力系统、电气设备、电子设备等领域。采用先进的数字式电阻测量技术&#xff0c;具有高精度、高稳定性的测量性能。其测量误差小于0.05%&#xff0c;能够满足各种精密测量的需求。 双通道-程控…

JAVA学习-练习试用Java实现“比较版本号”

问题&#xff1a; 给定两个版本号 version1 和 version2 &#xff0c;请比较它们。 版本号由一个或多个修订号组成&#xff0c;各修订号由一个 . 连接。每个修订号由 多位数字 组成&#xff0c;可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号&#xff0c;…

【ARMv8/ARMv9 硬件加速系列 3.5.2 -- SVE 向量寄存器 有多少位数?】

文章目录 SVE 向量寄存器SVE 向量寄存器大小SVE 可伸缩性的好处SVE 寄存器长度示例SVE 向量寄存器 在 ARMv9 架构中,包括其 Scalable Vector Extension (SVE) 和 Scalable Vector Extension 2 (SVE2) 的增强,向量寄存器(通常称为 Z 寄存器)的大小设计为可伸缩的,以便在不…

MacBook Air M3的电脑怎么样 新买MacBook Air提示内存不足 苹果电脑内存不够用怎么办

Apple的MacBook Air系列一直是轻薄便携笔记本电脑的代表&#xff0c;最新推出的MacBook Air M3因其出色的性能和优雅的设计而受到广泛关注。然而&#xff0c;许多用户在购买全新的MacBook Air后反应他们遇到了内存不足的提示。 本文将探讨MacBook Air M3的电脑怎么样&#xff0…

Java 集合框架:Vector、Stack 的介绍、使用、原理与源码解析

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 015 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…

设计模式——观察者模式(发布/订阅模式)

观察者模式(发布/订阅模式) 是一种行为模式&#xff0c;允许你定义一种订阅机制&#xff0c;可在对象事件发生时通知多个“观察”该对象的其他对象 观察者模式定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时&am…

[机器学习算法]支持向量机

支持向量机&#xff08;SVM&#xff09;是一种用于分类和回归分析的监督学习模型。SVM通过找到一个超平面来将数据点分开&#xff0c;从而实现分类。 1. 理解基本概念和理论&#xff1a; 超平面&#xff08;Hyperplane&#xff09;&#xff1a;在高维空间中&#xff0c;将数据…

接口提示信息国际化, 调用LibreTranslate 离线翻译, 国际化支持

文章目录 背景实现方式步骤下载并部署离线翻译服务;前端接入 背景 将接口返回内容进行翻译, 以适配多语言需求; 实现方式 前端拦截接口返回内容, 调用离线翻译服务进行翻译, 翻译之后再进行相应的提示 参考资料: 离线翻译服务: https://github.com/LibreTranslate/LibreTra…

Revo Uninstaller Pro:专业卸载工具,为您的电脑系统深度清洁

Revo Uninstaller Pro 是一款功能强大的专业卸载工具&#xff0c;为用户提供了全面而高效的软件卸载解决方案。 在日常使用电脑的过程中&#xff0c;我们经常会遇到软件卸载不干净的问题&#xff0c;残留的文件和注册表项不仅占用宝贵的磁盘空间&#xff0c;还可能影响系统的稳…

36.6K star!Immich - 一款开源高性能的自托管照片和视频备份方案

大家好&#xff0c;今天给大家分享的是一个高性能的自托管照片和视频备份方案。 Immich 是一个图片管理和分享平台&#xff0c;它允许用户高效地组织、存储和访问他们的照片和视频集合。这个项目特别设计来优化个人和家庭的多媒体内容管理体验&#xff0c;提供了诸如自动备份、…

Function:控制继电器上下电,上电后adb登录,copy配置文件

import serial import time import datetime import subprocess import osdef append_to_txt(file_path, content):if os.path.exists(file_path):with open(file_path, a) as file: # 使用 a 模式打开文件进行追加file.write(content \n) # 追加内容&#xff0c;并换行else…

Hbase存储倒排索引

Hbase存储倒排索引 1. 倒排索引简介 定义&#xff1a;倒排索引是搜索引擎用于快速全文搜索的数据结构&#xff0c;它将文档中出现的每个词与包含该词的文档列表相关联。组成&#xff1a;倒排索引由两部分组成&#xff1a;词典和倒排文件。词典包含所有唯一词项&#xff0c;倒…