【新人系列】Python 入门(二):Python IDE 介绍

news2024/11/29 2:05:07

✍ 个人博客:https://blog.csdn.net/Newin2020?type=blog
📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html
📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们一起交流~
📚 专栏简介:在这个专栏,我将带着大家从 0 开始入门 Python 的学习。在这个 Python 的新人系列专栏下,将会总结 Python 入门基础的一些知识点,方便大家快速入门学习~
❤️ 如果有收获的话,欢迎点赞 👍 收藏 📁 关注,您的支持就是我创作的最大动力 💪

Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE),这些 Python 开发工具帮助开发者加快使用 Python 开发的速度并提高效率,高效的代码编辑器或者 IDE 应该会提供插件、工具等能帮助开发者高效开发的特性。

常见 Phyton IDE:PyCharm(推荐)、Sublime Text、VS Code、Eclipse + Pydev、Emacs、WingIDE、IDLE

1. PyCharm 下载

下载地址:https://www.jetbrains.com/zh-cn/pycharm/

PyCharm 是由 JetBrains 打造的一款 Python IDE。PyCharm 基本具备一切 Python IDE 的所有功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。

PyCharm 有分两个版本,一个是社区版(免费功能有限),一个是专业版(有一些增强功能)。

在这里插入图片描述

2. 虚拟环境

2.1 Python 解释器

计算机本来是不认识 Python 代码的,但是 Python 有解释器程序。我们前面安装 Python 环境,本质上其实是在电脑中安装 Python 解释器程序。代码随时都可以写,但是能不能运行,就要看电脑里是否有解释器程序了。

在这里插入图片描述
因此 Python 解释器就是一个计算机程序,用来翻译 Python 代码,并提交给计算机执行。对于 Windows 系统来说,Python 解释器的位置就是我们前面 Python 下载的位置,在下载好的文件夹中找到 python.exe 文件,这个其实就是 Python 解释器。

2.2 虚拟环境管理工具

不同开发项目需求中,如何保证在不同 Python 版本或依赖包环境下能互不干扰?如下场景:

  • 项目 A 采用 Python2.x,项目 B 采用 Python3.x
  • 项目 C 采用 Python 3.x Django 1.x, 项目 D 采用 Python 3.x Django 2.x

为了解决这些多版本或多环境共同的情况,就需要引出虚拟环境了:

  • virtualenv 是用来创建虚拟环境,让不同的项目拥有自己独立的的运行环境,避免相互干扰。
  • pyenv 用来管理多个 Python 版本,比如系统中有一个 2.x 的版本,安装 pyenv 后可以使用 pyenv 安装其他版本的 Python,让系统可以同时支持多个版本,而且不影响系统版本。
  • pipenv 它有两个功能,一个是管理依赖(替代 pip 管理工具)、另一个是可以创建虚拟环境。

不过这些都是第三方的虚拟环境,需自己额外去安装,但在 Python3 中我们可以使用自带的虚拟环境 venv。

2.3 创建虚拟环境

官方文档:https://docs.python.org/zh-cn/3.7/library/venv.html#moduule-veny

Python3.3 以上的版本通过 venv 模块原生支持虚拟环境,可以代替 Python 之前的 virtualenv。

该 venv 模块提供了创建轻量级 “虚拟环境”,提供与系统 Python 的隔离支持。每一个虚拟环境都有其自己的 Python 二进制(允许有不同的 Python 版本创作环境),并且可以拥有自己独立的一套 Python 包。

  • 查看帮助命令:python3 -m venv --help
  • 创建虚拟环境:python3 -m venv py3_env(py3_env 指定所创建虚拟环境的名称)

上面是基于命令行的操作方法,下面我来详细介绍一下在 PyCharm 中如何创建并配置虚拟环境。

  1. 新建项目

    a. 位置选择自己一般存放项目的地方,例如我这里选择存放在 project 文件夹下,并新创建了一个 test_python 文件夹用于存放本项目文件。

    1. 新的虚拟环境选择基于 “Virtualenv” 这个工具来创建。

    2. 位置默认为项目文件夹下的 venv 文件夹内(如果没有则自己创建),名称前加 . 则正常目录下会进行隐藏。该文件夹创建成功后,会存放 python 解释器和各种库。

      • 如果项目地址是 E:\projects\test_python
      • 则虚拟环境的地址就是 E:\projects\test_python\venv
      • 虚拟环境中的库 E:\projects\test_python\venv\Lib\site-packages
    3. 选择基本解释器,一般就选择下载的系统解释器。如果此处为空,则需要添加已安装在电脑中的 Python 路径;若没安装,则点击此处让 PyCharm 帮你自动安装。

      1. 如果勾选下面的 “Inherit global site-packages”,则会继承 Base interpreter 基本解释器 site-packages 文件夹下的所有库。
      2. 如果勾选下面的 “Make available to all projects”,则再次创建新项目时,本次选择的 Python 解释器就会显示在 “Previously configured interpreter” 下的解释器列表之中。这样创建该新项目就有两种创建方式,一种是创建新的虚拟环境,一种是使用这里的先前配置的解释器。
    4. 点击 “Create” 创建新的虚拟环境及项目。

在这里插入图片描述

  1. 查看虚拟环境

可以在 “Settings” -> “Project:xxx” -> “Python Interpreter” 下,查看 Python 解释器的虚拟环境,例如下面这个 Python 3.12 的解释器下存在两个虚拟环境,一个是 test_python 即刚才新建的虚拟环境,另一个是原来存在的虚拟环境 venv。

另外,也可以通过下图右上角的 “Add Interpreter” 来添加或创建新的虚拟环境。

在这里插入图片描述

  1. 查看并安装依赖包

我们可以直接点击上图 Package 标题上面的 “+” 号来添加所需的包,例如我下面想添加 requests 包,则可以在搜索栏搜索查找到所需的依赖包,然后点击 “Install Package” 进行下载。下载好的依赖包,会存放到虚拟环境中的 site-packages 文件夹下。

在这里插入图片描述

在这里插入图片描述

我们也可以在终端 Terminal 通过 pip list 命令查看当前虚拟环境下所安装的包,然后通过 pip install requests 来下载所需包。

另外,打开终端后可以发现命令行前出现了一个小括号,里面的名字 .venv 显示的就是我们该项目所使用的虚拟环境名称,显然该虚拟环境 PyCharm 已经帮我们自动激活了。

在这里插入图片描述

如果使用的是 Windows 电脑,执行上一步时可能会报错,这是因为当前使用的终端可能不是 cmd 而是 powershell。可以在 “Ssttrings” -> “Tools” -> “Terminal” 下找到 “Shell path”,由于我下图使用的是 mac,所以只存在 /bin/bash,但如果使用的是 Windows 则可以看到两个选项即 cmd 和 powershell,此时选择更改为 cmd 即可。

在这里插入图片描述

  1. 导出依赖包

如果我们想导出当前虚拟环境所依赖的包然后复制到其它虚拟环境使用的话,则可以使用如下命令:

pip freeze > requirements.txt

这样我们就可以在目录下获得到一个 requirements.txt 文件,里面存放着该虚拟环境用到的依赖包。

在这里插入图片描述

我们可以复制这个 requirements.txt 文件到其它虚拟环境中的目录下,然后执行下面的命令:

pip install -r requirements.txt

这样其它的虚拟环境也可以复制我当前虚拟环境用到的依赖包,从而快速配置好所需的开发环境。

3. PyCharm 常用功能

3.1 常用设置

  1. 第三方库下载

在 “Settings” -> “Project:xxx” -> “Python Interpreter” 下,可以下载想要的第三方库。

在这里插入图片描述

在这里插入图片描述

  1. IDE 主题选择

在 “Settings” -> “Appearance & Behavior” -> “Appearance” 下,可以选择自己喜欢的 IDE 主题风格。

在这里插入图片描述

  1. IDE 字体大小更改

在 “Setting” -> “Editor” -> “Font” 下,可以更改字体的首选样式(Font)、大小(Size)以及行间距(Line height)。

在这里插入图片描述

  1. 查看项目文件的结构

通过 “View” -> “Tool Windows” -> “Structure” 可以打开这个功能,在 IDE 的左下方能看到这个模块,在这个模块中可以看到当前文件的结构。

在这里插入图片描述

在这里插入图片描述

  1. 插件安装

在 “Settings” -> “Editor” -> “Plugins” 下,可以安装自己心仪的插件,通过安装插件可以对 IDE 的功能进行扩展。

在这里插入图片描述

  1. IDE 快捷键查看

通过 “Help” -> “Keyboard Shortcuts PDF”,可以获得到一个 PDF 形式的快捷键大全。

在这里插入图片描述

3.2 断点调试

常用代码的调试方法:

  • 通过 print 语句,打印变量的值,帮助我们了解代码的执行流程和变量的取值情况,这是最简单的调试方法
  • 通过 logging 模块即日志模块,去记录我们关键变量的取值
  • 使用调试器,比如 pdb、ipdb
  • 使用 IDE PyCharm 的调试功能**(推荐)**

下面我们来介绍一下 PyCharm 中,是如何进行代码调试的。

  1. 设置断点

在想要暂停程序执行以检查变量值或程序状态的代码行旁边的灰色区域,用鼠标左键点击,此时就会出现一个红点,即表示设置了一个断点。

在这里插入图片描述

  1. 启动调试

主要有两种启动方式:

  • 方式一:直接点击右上角的小虫子图标
  • 方式二:鼠标右键,选择 “Debug ‘xxx’”

Tips:
不要通过普通 Run 的方式启动程序,需要通过 Debug 方式启动,设置的断点才能生效。

在这里插入图片描述

  1. 调试工具窗口

当程序执行到断点时,会暂停执行,此时会出现调试工具窗口,主要包括以下几个部分:

在这里插入图片描述

  • 调试工具:提供了若干操作按钮。
    • Rerun ‘xxx’(command + R):重新以调试的方式运行代码。
    • Stop ‘xxx’(command + F2):停止运行当前代码调试。
    • Resume Program(option + command + R):继续执行程序一直到结束,如果当前执行处后面还有断点,则执行到下一个断点处。
    • Pause Program:如果当前程序正在运行中,点击该按钮,则会立即停止到正在运行的地方。
    • Step Over(F8):步过,单步运行,但不会进入函数体中。
    • Step Into(F7):步入,单步运行,但会进入到函数体中。
    • Step Into My Code(option + shift + F7):步入我的代码,单步运行,也会进入到函数体中,但是只会进入到你自己编写的代码函数中,不会进入到系统的函数。
    • Step Out(F8):步出,跳出当前函数体。
    • View Breakpoints…(shift + command + F8):查看当前程序的所有断点。
    • Mute Breakpoints:禁止当前程序的所有断点,使所有断点失效。
  • 变量窗口:显示当前作用域内的变量及其值,可以展开查看对象的属性。
  • 栈帧窗口:显示当前的调用栈,可以查看程序的执行路径。
  • 控制台:可以在调试过程中输入命令或查看程序的输出。

在这里插入图片描述

在这里插入图片描述

4. PyCharm 快捷键

4.1 指令大全

在 Windows 中,下面 command 指令都替换成 ctrl,option 指令都替换成 alt 即可。

Mac 键盘符号和修饰键说明:

  • ⌘ command
  • ⇧ shift
  • ⌥ option
  • ⌃ control
  • ↩︎ return / enter
  • ⌫ delete

另外,Mac 中想触发 Fx,则需要加上 fn 键,例如触发 F3,需要 fn 和 F3 一同按下才能触发 F3 键。

在这里插入图片描述
在这里插入图片描述

所有指令:

在这里插入图片描述

4.2 常用指令

  1. 快速查找文件

用快捷 command + E 可打开最近访问过的文件。

在这里插入图片描述

  1. 万能搜索

连续按两下 shift 键可以搜索文件名、类名、方法名,如果要搜索目录则在开头加斜杠 /。

在这里插入图片描述

  1. 全局搜索、全局替换

如果你要全局项目范围内搜索文件里面的关键字,那么就需要使用 command + shfit + F,或者 command + shfit + R 全局替换。

在这里插入图片描述

  1. 智能提示

智能提示是 IDE 的标配功能,PyCharm 默认有自动提示功能,但是还不够智能,比如要使用还没有引入到的模块则没法自动提示了,因此可以使用 option + enter 智能提示帮助你选择合适的操作。

在这里插入图片描述

  1. 任意位置换行

无论你的光标处在何位置,你都可以通过快捷键 shfit + enter 另起一行,这样无需把光标移到未尾去操作。

  1. 误删文件,一秒找回

在你的项目目录里,点击右键,有个 Local History 的选项,再点击子选项 Show History,你可以看到这里有个记录板。如果你想恢复删除的文件,就在删除的记录项点击右键,选择 Revert 即可恢复。

另外,也可以在这里面找到之前修改前的历史记录,同样可以选择恢复到之前的状态。

在这里插入图片描述

  1. 使用书签,快速定位
  • F3:在鼠标所在代码行,添加 / 取消匿名书签

在这里插入图片描述

  • option + F3:在鼠标所在代码行,使用助记符添加 / 取消书签

在这里插入图片描述

  • control + 0…9:定位到对应数值的书签位置
  • command + F3:显示所有书签

在这里插入图片描述

  1. 代码模板,效率编码

PyCharm 提供的代码模板,是相当实用的一个功能。它可以在你新建一个文件时,按照你预设的模板自动帮你生成一段内容,比如解释器路径,编码方法,作者详细信息等。

在这里插入图片描述

当你在键盘中敲入 command + J 时,就可以调出一个面板,从下图可以看出里面有许多预设的模板。

在这里插入图片描述

  1. Tab 轻松空格

同一个 Python 文件模块里,Tab 和四个空格缩进两种风格是不能共存的。这就需要你按照该文件原来的缩进风格来进行编码,在 PyCharm 里,可以设置自动检测原文件的缩进风格来决定当你使用 Tab 键缩进的时候,是 Tab 还是四个空格。

在这里插入图片描述

若在 Use tab character 打上勾,则你新建一个 Python 后,就会使用 Tab 进行缩进。反之,则使用四个空格进行缩进。

在这里插入图片描述

  1. 一键进行代码性能分析

点击 Run -> Profile ‘程序’,即可进行性能分析。

在这里插入图片描述

性能统计界面由 Name、Call Count、Time (ms)、Own Time (mss),4 列组成一个表格,见下图。

  • 表头 Name 显示被调用的模块或者函数;Call Count 显示被调用的为次数;Time (ms) 显示运行时间和时间百分比,时间单位为毫秒 (ms)。
  • 点击表头上的小三角可以升序或降序排列表格。
  • 在 Name 这一个列中双击某一行可以跳转到对应的代码。
  • 以 fun4 这一行举例:fun4 被调用了一次,运行时间为 1000ms,占整个运行时间的 16.7%。

Statistic:

在这里插入图片描述

点击 Call Graph(调用关系图)界面直观展示了各函数之间的调用关系、运行时间和时间百分比,见下图。

  • 箭头表示调用关系,由调用者指向被调用者
  • 矩形的左上角显示模块或者函数的名称,右上角显示被调用的的次数
  • 矩形中间显示运行时间和时间百分比

Call Graph:

在这里插入图片描述

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

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

相关文章

leetcode.204.计数质数

#中等#枚举 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 埃氏筛 枚举没有考虑到数与数的关联性,因此难以再继续优化时间复杂度。接下来我们介绍一个常见的算法,该算法由希腊数学家厄拉多塞(Eratosthenes)提…

Python爬虫:自动化获取商品评论数据

为什么选择Python爬虫API 高效的数据处理:Python的数据处理能力,结合Pandas等库,可以轻松处理和分析大量的评论数据。丰富的库支持:Python拥有丰富的库,如requests用于发送HTTP请求,BeautifulSoup用于解析…

初识MySQL · 数据库

目录 前言: 数据库 简单使用 存储引擎 前言: 本文也是MySQL的第一篇文章了,新的知识点已经出现,怎么能够停止不前,穿越时空……(迪迦奥特曼乱入哈哈哈)。 言归正传,我们在本文的目标有: …

工厂生成中关于WiFi的一些问题

一 背景: 主要做高通和MTK,工厂生成中通过使用adb wifi,因为这样生产效率高并且避免了新机器有划痕,但是也经常碰到adb wifi无法连接的问题,那么是什么原因导致呢? 二 案例 测试步骤: 使用adb wifi连接手机测试工厂case adb usb adb tcpip 5555 adb connect DU…

高效监控系统:Nightingale本地化部署与远程访问指南

文章目录 前言1. Linux 部署Nightingale2. 本地访问测试3. Linux 安装cpolar4. 配置Nightingale公网访问地址5. 公网远程访问Nightingale管理界面6. 固定Nightingale公网地址 前言 本文主要介绍如何在本地Linux系统部署 Nightingale 夜莺监控并结合cpolar内网穿透工具实现远程…

Android组件化、模块化、Catalogs

前言 下载代码-----》码云下载 下载代码-----》github下载 本篇是Android最新的依赖架构设计,gradle版本要8.0以上,代码实现基于8.5.1。好多年开发过程中,我们碰到config.gradle,buildSrc,composing builds等依赖编译…

新款任天堂switch游戏机方案,支持4K60HZ投屏方案,显示器,手柄方案

据传任天堂将推出新的一代的switch掌机,而新款掌机将支持4K60HZ投屏 都2402年了再做1080P确实有点不太象话了 4K60HZ相较于1080P能够提升很多游戏体验,这时不管是HDMI显示器或者是VR眼睛清晰度都会让人舒服很多。 不过新一代的任天堂似乎也在PD协议上…

用作曲的手法写旋律 什么是动机 ​动机扩大 单音重复 移八度

【你怎么还不会写旋律!!!猴子都听的懂的旋律教程来了!两分钟让你快速上手!】 你怎么还不会写旋律!!!猴子都听的懂的旋律教程来了!两分钟让你快速上手!_哔哩哔…

同济子豪兄--图的基本表示【斯坦福CS224W图机器学习】

无向图(Undirected Graph): 在无向图中,边没有方向,即如果顶点A和顶点B之间有一条边,那么这条边既表示A到B的关系,也表示B到A的关系。换句话说,边是双向的。无向图的边通常用一条线段…

WPF基础权限系统

一.开发环境 VisualStudio 2022NET SDK 8.0Prism 版本 8.1.97Sqlite 二. 功能介绍 WPF 基础权限系统,是一个支持前后端分离设计的 客户端(C/S)项目,该示例项目前端xaml使用UI库 ,Material Design Themes UI 来构建用户界面,确保…

Ubuntu如何显示pcl版本

终端输入: apt-cache show libpcl-dev可以看到,Ubuntu20.04,下载的pcl,应该都是1.10版本的

一次性入门三款分布式定时任务调度框架:Quartz、ElasticJob3.0、xxl-job

分布式定时任务调度框架(文末有源码) 前言1、Quartz1.1 数据库1.2 maven依赖1.3 代码实现1.3.1 创建一个job1.3.1 为job设置trigger 1.4 配置文件1.5 启动、测试1.1 单机1.2 集群 2、ElasticJob2.1 下载zk2.2 新建三个类型的作业2.3 配置文件2.4 启动项目…

Windows下配置Nginx和PHP

之前在Windows开发php项目用的是phpstudy,好用的很。但是phpstudy好久没有更新了,感觉PHP像没有人再用了一样。但是PHP拿来开发小系统,还是很高效的,今天记录如何在Windows环境下配置Nginx和PHP。 1. 配置nginx Nginx软件下载解压…

基于Springboot+Vue的宠物管理系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

实现双向链表的增删改查

头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int LTDataType; typedef struct ListNode {LTDataType data;struct ListNode* prev;struct ListNode* next; } LTNode; //v…

QGraphics类型学习使用【Qt】【C++】

QGraphics类型学习使用 需求过程全部完整代码 首先已知&#xff0c;QGraphicsView&#xff0c;QGraphicsScene, QGraphicsItem&#xff0c;分别称为&#xff1a;视图&#xff0c;场景&#xff0c;图元&#xff0c;图表就是各种各样的元素&#xff0c;图片元素&#xff0c;线条元…

react18中在列表项中如何使用useRef来获取每项的dom对象

在react中获取dom节点都知道用ref&#xff0c;但是在一个列表循环中&#xff0c;这样做是行不通的&#xff0c;需要做进一步的数据处理。 实现效果 需求&#xff1a;点击每张图片&#xff0c;当前图片出现在可视区域。 代码实现 .box{border: 1px solid #000;list-style: …

ParallelsDesktop20最新版本虚拟机 一键切换系统 游戏娱乐两不误

让工作生活更高效&#xff1a;Parallels Desktop 20最新版本虚拟机的神奇之处 大家好&#xff01;&#x1f44b; 今天我要跟大家安利一款让我工作效率飞升的神器——Parallels Desktop 20最新版本虚拟机。作为一个日常需要在不同操作系统间来回穿梭的人&#xff0c;这款软件简直…

react18中的计算属性及useMemo的性能优化技巧

react18里面的计算属性和使用useMemo来提升组件性能的方法 计算属性 实现效果 代码实现 函数式组件极简洁的实现&#xff0c;就这样 import { useState } from "react"; function FullName() {const [firstName, setFirstName] useState("");const [la…

OpenCV高级图形用户界面(14)交互式地选择一个或多个感兴趣区域函数selectROIs()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 允许用户在给定的图像上选择多个 ROI。 该函数创建一个窗口&#xff0c;并允许用户使用鼠标来选择多个 ROI。控制方式&#xff1a;使用空格键或…