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创建虚拟项目步骤:
- 创建新的conda环境pycharm,安装3.10版本的python
conda create --name pycharmpython=3.10
- 创建项目
打开【文件】/【创建项目】,配置解释器为刚才创建的名为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$会替换为添加时的日期,默认值是静态赋值,这两个有一个赋值即可,两者都空着,生成代码时,变量占据的位置也同样空着。
相关文章:
PyCharm新手入门
前言 在之前《Python集成开发工具的选择》一文中介绍了python初学者可以使用Jupyter Notebook,Jupyter Notebook简单易用,可以用来练习代码编写,但是实际生产开发环境使用这个工具是远远不够用的,因为实际软件开发中需要软件调试…...
[Linux] 系统管理
全局配置文件 用户个性化配置 配置文件的种类 alias命令和unalias命令 进程管理 进程表...
Xcode无法使用设备:Failed to prepare the device for development
问题: Xcode无法使用设备开发,失败报错如下: Failed to prepare the device for development. This operation can fail if the version of the OS on the device is incompatible with the installed version of Xcode. You may also need…...
AWS无服务器 应用程序开发—第十二章 AWS Step Functions
AWS Step Functions 是一种服务,用于协调和管理分布式应用程序中的多个 AWS 服务和 Lambda 函数。它通过创建有状态的工作流来简化和自动化应用程序的各种工作流程,使得复杂的业务逻辑可以以可管理和可调试的方式实现。 主要功能和特点: 状态机定义: 使用 JSON 或 Amazo…...
Linux tcpdump详解
目录 前言:BPF伯克利包过滤器介绍1.BPF语法(tcpdump语法)2.逻辑运算符3.常用的原子条件1. 协议相关的原子条件2. 地址相关的原子条件3. 端口相关的原子条件4. 网络层和链路层(mac地址)原子条件5. 广播和多播6. VLAN 相关的原子条件…...
vue2实现打印功能(vue-print-nb的实现)
实现效果: 引入插件 npm install vue-print-nb --save import Print from vue-print-nb Vue.use(Print) <div ref"printTest" id"printTest"><div style"text-align: center; page-break-after: always"><div style…...
某全国增值税发票查验平台 接口JS逆向
注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 本文的验证码网址如下,使用base64解码获得 aHR0cHM6Ly9pbnYtdmVyaS5jaGluYXRheC5nb3YuY24v 这个平台功能没什么好说的,就是发票查验&am…...
前端练习小项目——视觉冲击卡片
前言: 前言:在学习完HTML和CSS之后,我们就可以开始做一些小项目了,本篇文章所讲的小项目为——视觉冲击卡片 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 先让我们看一下效果&a…...
从0到1:手动测试迈向自动化——手机web应用的自动化测试工具
引言: 在当今移动互联网时代,手机web应用已经成为人们生活中不可或缺的一部分。为了保证手机web应用的质量和稳定性,自动化测试工具变得十分重要。本文将介绍手机web应用自动化测试工具的选择和使用,提供一份超详细且规范的指南&a…...
磁盘未格式化:深度解析、恢复策略与预防措施
一、磁盘未格式化的定义与现象 在计算机存储领域,磁盘未格式化通常指的是磁盘分区或整个磁盘的文件系统信息出现丢失或损坏的情况,导致操作系统无法正确读取和识别磁盘上的数据。当尝试访问这样的磁盘时,系统往往会弹出一个警告框࿰…...
Qwen2在Java项目中如何实现优雅的Function_Call工具调用
在当今AI技术飞速发展的背景下,大语言模型如Qwen2和GLM-4凭借其强大的语言处理能力,在诸多领域展现出了巨大的潜力。然而,大模型并非全知全能,它们在处理特定任务时,尤其是在需要与外部系统交互或执行具体功能时&#…...
【SPIE独立出版 | 往届均已完成EI检索】2024云计算、性能计算与深度学习国际学术会议(CCPCDL 2024)
2024云计算、性能计算与深度学习国际学术会议(CCPCDL 2024) 2024 International conference on Cloud Computing, Performance Computing and Deep Learning *CCPCDL往届均已完成EI检索,最快会后4个半月完成! 一、重要信息 大会官网:www…...
MYSQL 四、mysql进阶 4(索引的数据结构)
一、为什么使用索引 以及 索引的优缺点 1.为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。Mysql中也是一样的道理,进行数…...
360vr党建线上主题展立体化呈现企业的文化理念和品牌形象
在现代科技的引领下,艺术与VR虚拟现实技术相融合必将成为趋势,深圳VR公司华锐视点荣幸地推出VR艺术品虚拟展厅,为您带来前所未有的艺术观赏体验。体验者足不出户即可置身于一个充满创意与灵感的虚拟艺术空间。 我们深入了解每一位客户的需求与…...
docker通过容器id查看运行命令;Portainer监控管理docker容器
1、docker通过容器id查看运行命令 参考:https://blog.csdn.net/a772304419/article/details/138732138 docker inspect 运行镜像id“Cmd”: [ “–model”, “/qwen-7b”, “–port”, “10860”, “–max-model-len”, “4096”, “–trust-remote-code”, “–t…...
XMind 2024软件最新版下载及详细安装教程
人所共知的是XMind 在公司和教育领域都有很广泛的应用,在公司中它能够用来进行会议管理、项目管理、信息管理、计划和XMind 被认为是一种新一代演示软件的模式。也就是说XMind不仅能够绘制思维导图,还能够绘制鱼骨图、二维图、树形图、逻辑图、组织结构…...
代码随想录算法训练营第四十四天 | 322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包理论基础、背包问题总结
322. 零钱兑换 题目链接:https://leetcode.cn/problems/coin-change/ 文档讲解:https://programmercarl.com/0322.%E9%9B%B6%E9%92%B1%E5%85%91%E6%8D%A2.html 视频讲解:https://www.bilibili.com/video/BV14K411R7yv/ 思路 确定dp数组以及下…...
开源AGV调度系统OpenTCS中的路由器(router)详解
OpenTCS中的任务分派器router详解 1. 引言2. 路由器(router)2.1 代价计算函数(Cost functions)2.2 2.1 Routing groups2.1 默认的停车位置选择2.2 可选停车位置属性2.3 默认的充电位置选择2.4 即时运输订单分配 3. 默认任务分派器的配置项4. 参考资料与源…...
关于下载 IDEA、WebStorm 的一些心得感想
背景 实习第一天的时候,睿哥便吩咐我下载一些软件,这些软件以后在写项目的时候会用到,他叫我先装IDEA,WebStorm,微信开发者工具,git,还有Navicat。 这些软件能够被我们正常使用,无非就通过三步…...
C#使用Scoket实现服务器和客户端互发信息
20240616 By wdhuag 目录 前言: 参考: 一、服务器端: 1、服务器端口绑定: 2、服务器关闭: 二、客户端: 1、客户端连接: 2、客户端断开: 三、通讯: 1、接收信…...
【经验分享】SpringCloud + MyBatis Plus 配置 MySQL,TDengine 双数据源
概述 因为项目中采集工厂中的设备码点的数据量比较大,需要集成TDengine时序数据库,所以需要设置双数据源 操作步骤 导入依赖 <!-- 多数据源支持 --><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-s…...
Pycharm 忽略文件
安装 .ignore插件 规则示例 罗列一些常遇到.getignore忽略规则的使用示例: 1. 在已忽略文件夹中不忽略指定文件夹: /libs/* !/libs/extend/ 2. 在已忽略文件夹中不忽略指定文件 /libs/* !/libs/extend/fastjson.jar 3.只忽略libs目录…...
爬虫学习。。。。
爬虫的概念: 爬虫是一种自动化信息采集程序或脚本,用于从互联网上抓取信息。 它通过模拟浏览器请求站点的行为,获取资源后分析并提取有用数据,这些数据可以是HTML代码、JSON数据或二进制数据(如图片、视频)…...
美国铁路客运巨头Amtrak泄漏旅客数据,数据销毁 硬盘销毁 文件销毁
旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 美国国家客运铁路公司(Amtrak)近日披露了一起数据泄露事件,旅客的Guest Rewards常旅客积分账户的个人信息被大量窃取。 根据Amtrak向马萨诸塞州提交的泄露通知,5月15日…...
LabVIEW与Matlab联合编程的途径及比较
LabVIEW和Matlab联合编程可以通过多种途径实现,包括调用Matlab脚本节点、使用LabVIEW MathScript RT模块、利用ActiveX和COM接口,以及通过文件读写实现数据交换。每种方法都有其独特的优势和适用场景。本文将详细比较这些方法,帮助开发者…...
秋招突击——6/16——复习{(单调队列优化DP)——最大子序和,背包模型——宠物小精灵收服问题}——新作{二叉树的后序遍历}
文章目录 引言复习(单调队列优化DP)——最大子序和单调队列的基本实现思路——求可移动窗口中的最值总结 背包模型——宠物小精灵收服问题思路分析参考思路分析 新作二叉树的后续遍历加指针调换 总结 引言 复习 (单调队列优化DP)…...
SAR动目标检测系列:【4】动目标二维速度估计
在三大类杂波抑制技术(ATI、DPCA和STAP)中,STAP技术利用杂波与动目标在二维空时谱的差异,以信噪比最优为准则,对地杂波抑制的同时有效保留动目标后向散射能量,有效提高运动目标的检测概率和动目标信号输出信杂比,提供理…...
JavaEE多线程(2)
文章目录 1..多线程的安全1.1出现多线程不安全的原因1.2解决多线程不安全的⽅法1.3三种典型死锁场景1.4如何避免死锁问题2.线程等待通知机制2.1等待通知的作用2.2等待通知的方法——wait2.3唤醒wait的方法——notify 1…多线程的安全 1.1出现多线程不安全的原因 线程在系统中…...
中新赛克两款数据安全产品成功获得“可信数安”评估测试证书
6月19日,2024数据智能大会在北京盛大召开。 会上,中国2024年上半年度“可信数安”评估测试证书正式颁发。中新赛克两款参评产品凭借过硬的技术水准和卓越的应用效果,成功获得专项测试证书。 2024年上半年度“可信数安”评估测试通过名单 中新…...
代码随想录——分割回文串(Leetcode 131)
题目链接 回溯 class Solution {List<List<String>> res new ArrayList<List<String>>();List<String> list new ArrayList<String>();public List<List<String>> partition(String s) {backtracking(s, 0);return res;}p…...
金融产品做网站推广/网络服务器图片
当我在VMware 上安装了一个linux虚拟机,同时在虚拟机上安装了一系列软件(包括数据库) 我们会修改hostname ,修改后 对于数据库:我们要把/u01/app/oracle/product/11.2.01/db1/network/admin/下的 listener.ora 和 tns…...
移动网站建设的前景/seo推广宣传
可以使用cacti、nagios等监控程序监控nginx服务器,不过有时候不用那么复杂,用nginx-rrd就能完成连接、请求的监控功能。 首先编译安装nginx,注意加载stub_status模块,Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本…...
常州做网站找哪家好/免费外贸接单平台
2019独角兽企业重金招聘Python工程师标准>>> 我们在编写代码的时候,总会遇到一些需要反复使用的代码片段。这时候就需要反复的复制和黏贴,大大影响效率。我们利用Sublime Text的snippet功能,就能很好的解决这一问题。通俗的讲&…...
wordpress高级破解主题/刚刚地震最新消息今天
SUM()函数。 TRIM(exp1)函数去除首尾空格。 ROUND(exp1,exp2)函数四舍五入,根据exp2参数取几位小数。 NVL(exp1,exp2) 第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。 regexp_replace(exp1,exp2,exp3)函数 …...
网站建设费钱吗/广州网络运营课程培训班
2019独角兽企业重金招聘Python工程师标准>>> OSChina 不支持 md,附上图片如下,github 地址: https://github.com/samuelzuuka/buildfuture-simple-template BuildFuture This Article is composed by Samuel Zuuka, anyone is fr…...
网站建设 培训/icp备案查询
致的说了一些对文档进行编辑的方法。点击文档库中的文档,可以直接打开相应的软件进行编辑。而另外还有一种比较正规的方法是先将要编辑的文档“签出”,编辑完成后再“签入”。使用这种方法可能会避免一些问题的产生。下面我们以“行政部”子网站中的“行…...