python能够干什么?

声明

本篇文章的目的是介绍Python究竟可以用在多少个领域,以及它到底有多好用,有什么可用的工具包这一点上,以及对Python的相关管理环境和集成开发环境做一个简单的科普,没有任何包含适合于无脑按图配置操作的内容,需要这种内容可能还需要您去csdn上小搜一下。本篇文章主要来讲,还是以扩展视野为主要目的。

(但是关于Python安装的流程还有之后可以怎么用?还是大概说了一下的)

万字长文,收好~

python有哪些用途?

Python是一种高级编程语言,它被广泛用于各种不同的领域。以下是Python的一些常见用途:

  1. 网络应用开发:Python可以用于编写Web应用程序、API、爬虫、网络服务器等。

  2. 数据科学和机器学习:Python拥有许多流行的数据科学和机器学习库,例如NumPy、Pandas、SciPy、Scikit-learn等,可以用于数据分析、机器学习、人工智能等领域。

  3. 自动化和脚本编写:Python可以用于编写脚本和自动化任务,例如自动化测试、批量处理、文件操作等。

  4. 游戏开发:Python可以用于编写游戏和游戏引擎,例如Pygame、Panda3D等。

  5. 科学计算和工程计算:Python可以用于编写科学计算和工程计算程序,例如有限元分析、计算流体力学等。

  6. 金融分析:Python可以用于金融数据分析和量化交易,例如pandas-datareader、pyfolio等。

  7. 教育和科普:Python易于学习,因此被广泛用于教育和科普领域,例如编程入门、绘图等。

总之,Python是一种通用、灵活和易学易用的编程语言,因此在各个领域都有广泛的应用。

首先,我需要有一个python环境......

方法一,从官网安装Python。

这种方法简单粗暴,首先你需要学会一点魔法(kxsw,去github上面找一个,免费的付费的都可以,github可以通过绿色加速成功登上)(当然也可以不使用魔法,但是下载速度极慢,而且之后你需要花点力气把下载源更换为清华源或者阿里源(不过其实使用魔法也需要更换代理,都需要一点小技术))

这种方法的优点就是简单易懂想安装在哪就安装在哪而且轻量化,缺点是如果你忘记设置全局路径的话,很有可能一台电脑上最后会多出3~5个python,并且安装上去的Python是光的,你需要使用pip来安装相关的软件,相对比较容易出错

方法2,Anaconda

这种方法需要登Anaconda的官网,去上面下载Anaconda,下载完之后本地安装,如果觉得设置路径很麻烦的时候,安装的时候记得勾选:帮我设置全局变量,这样子你就可从cmd里面唤起Anaconda,优点是方便安装,并且这个软件安装的时候,他的默认库帮你集成了一系列数据分析软件,并且整个Anaconda是想建设一个Python生态的,所以你可以通过Anaconda的主界面安装其他Python辅助软件,缺点是Anaconda又重又不好弄,开一个主界面要跑三分钟多,并且很吃电脑内存。

方法三,miniconda

anaconda的剪切版本,只保留了一个conda和一个Python,如果觉得配置全局路径很麻烦,并且你不想一不小心又多安装好几个miniconda,你可以选择在安装包界面的时候直接勾选帮我设置环境变量这一选项。优点是轻量化,并且具有我们平时绝大多数使用方法2的功能,缺点是安装界面为英语(其实方法二也是)并且相对对新手不友好(但其实也还行?)

方法4:项目管理库+python

如果你对包管理软件和项目管理软件已经有非常成熟的理解了,这种情况下你可以使用Python支持的一些包管理库,例如poetry等,他们会使用类似于java中maven的形式,来帮你管理Python中的库,这对于项目化和工程化是相当有帮助的。缺点是对于几乎没有接触他们的新手而言,使用这个简直就是地狱级难度。

等等,我为什么需要给python准备一个包管理软件?包管理软件到底是什么?

Python包管理软件是用于管理Python软件包(也称为库或模块)的工具。这些软件包是预先编写好的Python代码,可以在你的应用程序中被导入和使用,以完成特定的任务。

Python包管理软件的作用是:

  1. 管理Python依赖项:Python应用程序通常依赖于许多软件包和库。包管理软件可以自动安装、升级和卸载这些依赖项,以确保应用程序可以正常运行。

  2. 管理Python环境:在Python中,每个项目都可以使用不同的版本和依赖项。包管理软件可以帮助你管理这些版本和依赖项,以确保项目的环境是正确和一致的。

  3. 管理Python发布:如果你创建了一个Python软件包,包管理软件可以帮助你发布和分发这个软件包,以便其他人可以使用它。

常见的Python包管理软件包括pip、conda、easy_install等。这些工具都可以通过命令行使用,使得Python的包管理变得更加容易和高效。

如果我偏不用会怎么样?

如果你不使用Python包管理软件,可能会遇到以下问题:

  1. 版本冲突:Python软件包通常有许多不同的版本,这些版本可能不兼容。如果你手动安装软件包,可能会遇到版本冲突的问题,导致你的应用程序无法正常运行。

  2. 依赖项管理:Python应用程序通常依赖于许多软件包和库。如果你手动安装这些软件包,可能会遗漏某些依赖项,导致应用程序无法正常运行。此外,如果你需要更新依赖项,手动更新也会非常麻烦。

  3. 维护困难:手动管理Python软件包和依赖项会非常困难和耗时。如果你的应用程序依赖于很多软件包,手动管理它们将会变得非常麻烦和容易出错。

  4. 发布困难:如果你创建了一个Python软件包,并想要将其发布到其他人使用,手动发布和分发也会非常困难和耗时。

因此,使用Python包管理软件可以帮助你自动化管理Python软件包和依赖项,使得Python开发更加高效和容易维护。

概念:依赖冲突

依赖冲突是一个很简单的概念,举个例子:现在你的Python环境下存在着两个主要的库,一个叫做A,另外一个叫做B,A跟B同时依赖着相同版本的C

(注意相同版本,并且一个环境底下不可以存在两个不同版本的库), ABC三个都是Python库。

现在b发生了更新,你随之打算更新b,但是b更新之后,对c的依赖要求变高了。

说白了就是现在必须需要更高级别的c来支持b的运作(如果以前是1.0版本,现在c就必须要3.0或者4.0版本,类似于这种理解)。

但是a无法支持更高的c版本

(举个例子,例如a最高支持到2.0这个时候b更新了更新到3.0或者4.0,a就支持不了了)

这种情况对b更新就会发生依赖冲突的现象(b用得了a用不了),尤其是使用pip,pip不会进行环境检查,所以他在安装之前是不由分说直接给你安装下去的,这种情况就可能会导致环境里面的其他库用不了了。

概念:包冲突

包冲突是指在同一个Python环境中安装了两个或多个软件包

这些软件包依赖于同一个软件包的不同版本或者依赖的软件包之间存在版本不兼容的问题。

这种情况就像是你的朋友和你的家人在同时安排你的时间表,因为他们的时间表冲突,你无法满足所有人的需求。

包冲突可能会导致Python程序无法正常运行,或者产生意想不到的结果,例如程序崩溃或者输出不正确的结果。

为了避免这种问题,你可以使用Python包管理工具来管理软件包和依赖项,或者使用虚拟环境来创建独立的Python环境,确保每个应用程序都有自己的软件包和依赖项,避免不同程序之间的包冲突。

这就像是你为每个朋友和家人分配了自己的时间表,确保每个人的需求都能得到满足,避免冲突和混乱。

概念:虚拟环境

虚拟环境是一种创建独立Python环境的机制,它允许你在同一台机器上同时运行多个Python环境,并且它们之间互不干扰,可以安装不同版本的Python解释器、软件包和依赖项。虚拟环境通常被用于解决不同项目之间的依赖冲突、升级Python版本、测试软件包等问题

大概意思是:

在一堆Python环境里面,有一个最大的Python,这个最大的Python平时是用来执行包管理用的,不作为开发与生产环境使用。

我们可以通过这个最大的Python解释器,结合一些包管理库,生成一个新环境,或者是删除一个环境,又或者是激活一个环境。

当你激活一个新环境之后,你可以在里面调用包管理的相关安装指令和修改指令,更改这个环境里面安装的库,这个库与其他环境不会相互干涉。

虚拟环境的创建和管理可以通过Python内置的venv模块或第三方工具如virtualenv来完成。下面是使用venv模块创建虚拟环境的步骤:

  1. 打开命令行终端或控制台,进入你想要创建虚拟环境的目录。

  2. 运行以下命令来创建一个名为myenv的虚拟环境:

    python -m venv myenv
    ```
    ​
    这将在当前目录下创建一个名为myenv的新文件夹,其中包含一个新的Python环境。
  3. 激活虚拟环境。在Windows上,可以运行以下命令:

    myenv\Scripts\activate.bat

    在Linux或Mac上,可以运行以下命令:

    source myenv/bin/activate

    这将激活虚拟环境,并将命令行提示符更改为虚拟环境名称。

  4. 在虚拟环境中安装软件包和依赖项。你可以使用pip命令来安装任何你需要的软件包和依赖项。

当你需要退出虚拟环境时,可以运行以下命令:

deactivate

这将关闭虚拟环境,并将命令行提示符更改回原来的状态。

使用虚拟环境可以帮助你有效地管理Python软件包和依赖项,确保不同项目之间的依赖不会冲突。虚拟环境还可以帮助你轻松地升级Python版本并测试软件包。

使用conda创建虚拟环境可以通过以下步骤完成:

  1. 打开命令行终端或控制台,进入你想要创建虚拟环境的目录。

  2. 运行以下命令来创建一个名为myenv的虚拟环境:

    conda create --name myenv
    ```
    ​
    这将创建一个名为myenv的新虚拟环境。
  3. 激活虚拟环境。在Windows上,可以运行以下命令:

    activate myenv

    在Linux或Mac上,可以运行以下命令:

    source activate myenv
  4. 在虚拟环境中安装软件包和依赖项。你可以使用conda命令来安装任何你需要的软件包和依赖项。

  5. 当你需要退出虚拟环境时,可以运行以下命令:

    deactivate

    这将关闭虚拟环境,并将命令行提示符更改回原来的状态。

使用conda创建虚拟环境可以帮助你有效地管理Python软件包和依赖项,确保不同项目之间的依赖不会冲突。conda还可以帮助你轻松地升级Python版本并测试软件包。除此之外,conda还可以管理非Python软件包和依赖项,使得整个环境更加统一和易于管理。

是时候准备一个IDE了

IDE是集成开发环境(Integrated Development Environment)的缩写,是一种软件工具,旨在为开发者提供一整套开发工具和环境,以便于开发和调试软件应用程序。IDE通常包含一个代码编辑器、调试器、编译器、自动完成、版本控制、构建工具、图形用户界面设计工具等多个功能,使得开发者可以在同一个软件中进行代码编写、测试、调试、构建、运行和部署等多个任务。

IDE的主要优点是提高了开发效率和代码质量,因为它提供了许多强大的功能,例如代码自动完成、语法检查、代码重构、调试工具等,使得开发者可以更快地编写代码并发现和修复错误。此外,IDE还提供了许多集成的工具和插件,使得开发者能够更加方便地使用版本控制系统、自动化构建工具和其他辅助工具。

Python有许多常见的IDE,包括:

Python集成开发环境(Python Integrated Development Environment)(IDE)

  1. PyCharm:JetBrains开发的Python IDE,功能强大,支持代码自动补全、调试、版本控制等多种功能,适用于Python开发的各种领域。缺点是这玩意儿画图有时候经常会因为内部端崩溃而无法使用,学习它的快捷操作需要一定的操作曲线,并且专业版需要付费,得走一些特殊渠道(我指的是学生认证哦,真的不是pj手段哦)(不过不可否认的是,这玩意儿确实是业界最好用的IDE)

  2. Visual Studio Code:微软开发的轻量级代码编辑器,支持Python语言扩展,支持代码自动补全、调试、版本控制等多种功能,是一个非常流行的Python开发工具。缺点是这玩意儿实在是太轻量化了,反正用起来就是不大舒服(这玩意敲前端代码不错)

  3. Spyder:基于Anaconda发行版的Python IDE,功能强大,支持代码自动补全、调试、数据可视化等多种功能,适用于科学计算和数据分析领域。缺点是这货的input存在迷之bug,至今未修,并且打开贼慢,优化也让人不舒服

  4. IDLE:Python自带的IDE,简单易用,支持代码编辑、调试等基本功能。缺点是这玩意儿实在是太简单易用了,以至于他很多方面的功能都没追加,他不会给你代码补全,但是上述三个IDE都有代码补全功能。

推荐pycharm

Python集成开发环境(IDE)的优点:
  1. 功能强大:Python IDE通常包含代码编辑器、调试器、编译器、自动完成、版本控制、构建工具、GUI设计工具等多个功能,可以提高开发效率和代码质量。

  2. 开发便捷:Python IDE可以自动完成代码、提供代码重构、语法检查等功能,使得开发者可以更快地编写代码并发现和修复错误。

  3. 多功能性:Python IDE还提供了许多集成的工具和插件,可以方便地使用版本控制系统、自动化构建工具和其他辅助工具。

Python集成开发环境(IDE)的缺点:
  1. 学习成本高:Python IDE通常有很多功能,因此需要一段时间来熟悉和掌握。

  2. 占用资源大:Python IDE通常需要占用较多的系统资源,例如内存和CPU,因此需要较高的计算机配置。

  3. 售价高:有些Python IDE需要付费使用,例如PyCharm等。

以及:

交互式数据分析环境(Interactive Data Analysis Environment)(IDE)

  1. Jupyter Notebook:基于Web的交互式Python环境,支持代码、Markdown文本、数据可视化等多种元素,适用于数据分析和探索性编程。

  2. 各种在线平台的notebook(反正都是jupyter内核)

交互式数据分析环境(IDE)的优点:
  1. 交互性好:交互式数据分析环境允许用户在一个界面中编写代码、运行代码、查看结果,非常方便进行数据分析和探索性编程。

  2. 数据可视化:交互式数据分析环境通常包含数据可视化工具,方便用户快速了解和展示数据。

  3. 开源免费:大多数交互式数据分析环境都是免费的,例如Jupyter Notebook等。

交互式数据分析环境(IDE)的缺点:
  1. 功能相对较弱:交互式数据分析环境通常只提供基本的代码编辑、调试、运行和结果查看功能,不像Python IDE那样功能丰富。

  2. 适用范围有限:交互式数据分析环境主要用于数据分析和探索性编程,不适用于其他Python开发领域。

  3. 难以调试:交互式数据分析环境通常不支持完整的调试功能,例如断点调试等。

推荐......就一家,没啥好推荐的(听说最近有个他的竞争对手出来了,但是目前还在发展,这玩意儿现在最大的竞争对手是携带AI的集成开发环境)

有钱人的选择:github codespace,现已加入chatgpt代码支持套餐

什么是Chatgpt?

如果你是计算机方面的从业者:

“??????????????”,”你干嘛,嘿呦~“

如果你是非计算机方面的从业者:

当我们和另一个人交谈时,我们可以用自然语言表达自己的意思,对方也可以理解我们的话语并回应。ChatGPT就是一种计算机程序,它可以模拟人类的这种交谈方式,也就是你可以和ChatGPT进行对话,它会读懂你的话语并回应给你。类似于你和一个人对话时,如果你问了一个问题,他会根据问题的意思和他的知识来回答你。ChatGPT的应用范围很广泛,可以用于智能客服、聊天机器人等领域,让人们更方便地获得信息和服务。

可以把ChatGPT想象成一本非常厚的百科全书,它涵盖了各种各样的知识和信息,可以回答各种类型的问题。就像我们在阅读百科全书时,可以找到关于历史、地理、科学、文化等各方面的信息一样,ChatGPT也可以处理各种自然语言任务,并提供相关的回答或生成新的文本。

ChatGPT的知识范围非常广泛,因为它在训练时使用了大量的语言数据,包括新闻、百科、小说、网页等。这就好比我们在阅读百科全书时,可以获得来自各个领域的知识和信息一样。虽然ChatGPT也存在一些局限性,例如对于非常特定或专业的领域,它的回答可能不够准确或完整,但是总体来说,它的知识范围非常广泛,并且在不断地扩大和提高。

接下来:

我将在以下几个板块向你展示Python的工具包数量之多

  • 自动化与脚本编写

    • excel,word自动化

      • openpyxl

      • python-docx

    • 文件批次处理

      • os

      • shutil

    • 爬虫

      • beautiful soup(bs4)

      • requests(网络负责,底层素材)

      • scrapy

      • selenium

      • lxml

      • pyquery

      • Requests-HTML

      • ......

  • 数据科学与计算

    • 数据科学计算

      • 矩阵运算:numpy

      • 各种科学计算:scipy

      • 高精度:decimal

      • 符号计算:Sympy

      • ......

    • 数据分析

      • pandas唯一真神

      • polar:???(更快, 但普及不广)

      • spark:???(工业大佬)

      • ......

    • 及其可视化

      • matplotlib

      • plotnine

      • pychart

      • seaborn

      • plotly

      • bokeh

      • altair

      • ......

    • 机器学习

      • scikit-learn及其衍生

    • 深度学习

      • 计算机视觉

        • opencv,pytorch,tf-keras,paddlepaddle

      • 自然语言处理

        • 各种分词软件:jieba,nltk,spacy,snownlp,stanford-corenlp

        • pytorch,tf-keras,paddlepaddle

      • (当然不止这两个领域,但先就讲这两个吧)

  • 系统管理和运维

    • 日志处理:logging

    • 备份管理:shutil,tarfile,paramiko

    • 监控告警:psutil,smtplib

    • 自动部署:paramiko,tarfile,shutil,os

    • ......

  • 网络开发和Web应用

    • Django、Flask、Bottle三件套

    • streamlit轻量级快速开发

  • 游戏开发

    • Pygame

    • PyOpenGL

    • Panda3D

    • Pyglet

    • Arcade

    • 。。。。。。

什么,不够多?

找个国内代理问chatgpt去。

猜你喜欢

转载自blog.csdn.net/unrealnum_border/article/details/131599324
今日推荐