当前位置: 首页 > news >正文

Python基本情况

Python(发音:/ˈpaɪθən/ )是一种强大的编程语言,它简单易学,提供众多高级的数据结构,让我们可以面向对象进行编程。Python 的语法优雅,由于是一个解释性语言,更贴近人类自然语言,符合人类惯常的认识逻辑。

Python 跨平台,它能够运行在所有的常见操作系统上。它在近期热门的大数据、科学研究、机器学习、人工智能等领域大显身手,同时 Python 几乎在所有领域都有所应用,对于学习它来说十分划算。

历史

Python 由 吉多·范罗苏姆(荷兰语:Guido van Rossum,1956年1月31日-) 创造,第一版发布于1991年。对于为何有 Python 这个项目,1996年吉多·范罗苏姆曾写到:

六年前,在1989年12月,我在寻找一门“课余”编程项目来打发圣诞节前后的时间。我的办公室会关门,但我有一台家用电脑,而且没有太多其它东西。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是 ABC 语言的后代,对 UNIX / C 程序员会有吸引力。作为一个略微有些无关想法的人,和一个蒙提·派森的飞行马戏团的狂热爱好者,我选择了Python作为项目的标题。

《蒙提·派森的飞行马戏团》(英语:Monty Python's Flying Circus),是 BBC 播出的英国六人喜剧团体电视喜剧系列,所以,Python 虽然原意是蟒蛇,但作为一门开发语言的命名,并不是作者对蟒蛇的喜爱,因此大家并不需要恐惧。

Python 2.0 于 2000 年 10 月 16 日发布。Python 3.0 于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python 源代码,目前正式版已经发布到 3.10.x, 已经不再维护 2.0 ,因此作为初学者(包括已经在学习的)建议至少多 3.8 版本开始学习,之后的版本功能差异不会太大。

与其他语言对比

语言对比

开发语言非常多,我们为什么学 Python 呢?正如之前介绍的那样,它简单、优雅、明确、代码量少等特点,同时还是一个通用性的语言,这就意味差我们可以用它来做任何事情(基本上是这样的)。

注意

这里说的一些语言特性不理解没有关系,形成大致印象,并且坚信 Python 能行,不要听其他人对 Python 的各种指责,相信 Python 是最适合自己的,同时也相信作者,一定不会骗你。

当然它也有一些缺点,不过这些缺点,是可以弥补的,对我们普通人,非工业级的使用不会造成影响。下边列出一些和其他语言的对比;

语言类型运行速度代码量应用范围
C编译为机器码非常快非常多业务底层
Java编译为字节码较广
Python解析执行通用
R解析执行统计分析

优缺点

针对优点:

  • 代码量少:这是简洁、优雅、明确、众多三方库带来的效果,可以让我们在处理同一个需求时相较其他语言撰写更少的代码量,大大节省了我们的时间,提高了效率;
  • 应用范围广:可以做数据处理、机器学习、AI、图形视频处理、游戏、软件、网站等等,一种技能解决更多的问题,不用为了解决某个需要去专门学习对应的语言。

针对缺点:

  • :只有在大规模工业化的使用时才突显,对于我们日常使用差别很小,同时也可以用提高硬件配置的方案对冲,因为硬件的成本对于我们的时间来说时间更为宝贵。同时,目前也有一些解决方案来处理这方面的问题;
  • 开源:这个其实是一个优点,开源可以带去分享,让我们有更多的学习资源,网络上 Python 的资料往往是比其他语言更多的。至于之前卖给别人软件担心别人看到源代码的顾虑,现在已经越来越没有必要,大多软件服务都是提供 Saas 服务、云服务的形式,将软件部署在自己的服务器上,给客户开一个账号就可以了。

能做什么

Python 的应用范围非常广泛,几乎所有领域它都能起到作用,这里列举一些典型的和常见的应用方向。YouTube、Google、Yahoo!、NASA 都在内部大量地使用 Python。

提示

下文会说到「库」、「框架」、「包」等词汇,就是别人造好的轮子,你直接用就行,当然用之前还得看看它的说明书怎么用。正是众多的覆盖所有领域的框架,让我们使用 Python 可以简单高效,不用关注技术细节。

Web 开发

简单说就是网络站点,包括 PC 站点、移动站点(m 站)、APP 小程序的数据接口,一些流行的 Python 框架可以让我们省时又省力,如 Django、Flask、Tornado 等。像国内的「知乎」、「豆瓣」等就是使用 Python 的知名网站。本网站「盖若」就是用 Python 开发的。

网络爬虫

爬虫模拟用户登录网站,拿下我们需要的数据,只要你能看到的信息它都可以给你批量、定时、快速地拿下来并整理好。还可以帮你进行注册登录、提交数据。Python 自带的 urllib 库,第三方的 requests、 Scrappy 都是做这个事的高手。

计算与数据分析

研究人员需要对数据进行分析处理,NumPy,SciPy,Matplotlib 等三方库可以进行科学计算。数据处理是我们工作学习中的日常,各种 Excel 都可以方便地用 Python 进行处理,除了高效还能实现批量和自动化,不用再每天做用户的工作,提供包括可视化之内的一揽子解决方案的 Pandas 越来越受欢迎,成为 Python 培训公司的吸金课程。数据可视化有 Matplotlib、ploty、seaborn,国内的 pyecharts,是基于百度开发的 echarts,也越来越受欢迎。

界面(GUI)开发

Python 自带的 Tkinter 库可以支持 GUI 的开发,让用户通过图形界面进行交互。还可以选择 wxPython 或者 PyQt 等三方 GUI 库开发跨平台的桌面软件。通过 PyInstaller 将程序发布为独立的安装程序包,在 Windows、 MAC 让安装运行。

人工智能

机器学习、神经网络、深度学习等人工智能领域,近年来越来越离不开 Python, 它已经是这方面的主流的编程语言。Facebook 的神经网络框架 PyTorch 和 Google 的 TensorFlow 都采用了Python语言。Sci-kit Learn 也是一个非常强大的机器学习库。

游戏开发

Python 可以编写一些小游戏,当然在大型游戏中也扮演重要的角色,如很多大型游戏用 C++ 编写图形显示等高性能模块,用 Python 编辑一些逻辑模块。PyGame 库也可用于直接开发一些简单游戏,其他的还包括 Turtle、Pymumk、Arcade、Pyglet 以及 Cocos 2d等。知名游戏 Sid Meier's Civilization(文明)就是使用 Python 实现的。

图形图像

Python 可以处理图像,做视频渲染,众多工业级的大型软件都开放了 Python 接口,供使用者自己编辑处理程序。图形图像可以应用在医学影像分析、影视制作、人脸识别、无人驾驶等方面。相关的库包有 PIL、OpenCV、SimpleITK、Pydicom 等。

其他

Python 是 IT 行业运维人员、黑客的主要工作语言,云计算搭建、用 PyRo 工具包进行机器人控制编程已经有众多的业务实践。

版本选择

提示

如果是 0 基础,这块儿不用看了,听我的,直接安装 3.9, 具体的安装下节会详细说明。

如果时间倒回到五年前,我会给你详尽地说说为什么要选择 Python 3 , 可是当下 3.10 已经正式发布,版本的选择已经不是一个可以讨论的话题了,热门的三方库已经做好了 Python 3 的适配,等你来用。

当然,Python 3 也不是最新就好,但至少应该在 Python 3.6 及以上,我觉得 Python 3.9 是个不错的选择,再到 2022 年就推荐 3.10 了。因为新的版本发布,各个三方库总有一个兼容的开发周期。

学习方法

作为 0 基础过来人的我,在学习方法上我觉得其实是一个心理建设的过程。试想,一个人面对一个全新的领域,自己一无所知,同时还有些神秘,自然会手足无措。我们不要忘记学习目的,我们不是要就对考试,而是能够使用它,编辑它。以下是几点经验和建议:

要动手写

这和我们的目的一致,不管你看多少视频、多少书,听别人讲了多少内容,如果从不自己动手去写它,还是无法实践;

确定并坚定目标

想清楚学习动机是什么,想到达到什么样的目标,所有的学习都围绕着目标进行。比如,对于普通人,我们想解决日常重复性的数据表格处理、绘制出漂亮的可视化图形,那么掌握基础的语法后就马上直接学习 pandas 库,直接上手写。

不要过于系统学习

以往的学习是要了解来龙去脉,然后一步一步进阶,但作为一个实用型技术,太注重系统化往往会让我们止足不前,进展缓慢。系统化的训练应该在你掌握了基本技术的前提下进行。

不要太多关注理论

理论往往是枯燥的,就像我们的生活,它也是晦涩的,在没有计算机背景的情况下,对我们无疑是一种打击。我们要做的就是越过理论的屏障去关注它的使用应用层面。在你掌握一定技能后你发现,一些理论并不那么难懂。

先模仿再总结归纳

不管是前期还是后期的学习,先按照教程把代码敲下来,执行,让返回结果和其他人一样,这就已经是一个巨大的进步了。事实上,你如果是一个老手,面对一个新的库,也只能先模仿。Python 解决问题都有最佳实践,我们模仿的内容往往是我们以后经常用到的方法。在模仿的过程中自己发现规律,总结方法,一步一步前进!

掌握自己解决问题的能力

如果我们从母体成为婴儿一样,总要独立前行,遇到的问题千千万万,无法枚举,但其中解决问题的方法需要建立。Python 代码执行错误会有报错,将报错信息在搜索引擎中查询会得到很多答案,然后找到能够解决自己问题的答案,慢慢地就会对此非常敏感。

尽快进入到库的学习

以数据分析为例,原生 python 是不具备实战意义的数据分析能力,因为它没有类似 R 语言那样的基本向量数据结构。 但 Numpy 的数组实际上就是向量,能够首先对结构化数据的向量运算。所以 python 做数据分析的基础就是 Numpy 只有深度理解 ndarray 数组的原理、操作和数学运算才能从根本上理解 python 数据分析。同时,由于 Numpy 过于底层,在数据分析应用层就要学习 pandas,它也是基于 Numpy 的。

因此,在学习了基础的语法、函数等操作后,要尽快进入了应用库的学习。

最后强调,优先学新版本而不是旧版本、优先看官方文档而不是第三方教程、优先看英文文档而不是中文文档。

相关文章:

Python基本情况

Python(发音:/ˈpaɪθən/ )是一种强大的编程语言,它简单易学,提供众多高级的数据结构,让我们可以面向对象进行编程。Python 的语法优雅,由于是一个解释性语言,更贴近人类自然语言&…...

【精华】AI Agent:大模型改变世界的“钥匙”

文章目录 1.Auto-GPT2.BabyAGI3.AgentGPT4.GodMode5.AI Town6.ChatDev 当前大模型的本质是大语言模型(Large Language Model, LLM)。相较于传统的自然语言处理模型,LLM通过无监督训练,从大量文本数据中学习自然语言的模式和结构&a…...

CVPR2023 RIFormer, 无需TokenMixer也能达成SOTA性能的极简ViT架构

编辑 | Happy 首发 | AIWalker 链接 | https://mp.weixin.qq.com/s/l3US8Dsd0yNC19o7B1ZBgw project, paper, code Token Mixer是ViT骨干非常重要的组成成分,它用于对不同空域位置信息进行自适应聚合,但常规的自注意力往往存在高计算复杂度与高延迟问题。…...

瑞萨MCU入门教程(非常详细的瑞萨单片机入门教程)

瑞萨MCU零基础入门系列教程 前言 得益于瑞萨强大的MCU、强大的软件开发工具(e studio),也得益于瑞萨和RA生态工作室提供的支持,我们团队编写了《ARM嵌入式系统中面向对象的模块编程方法》,全书37章,将近500页: 讲解面向对象编程…...

【Java】采用 Tabula 技术对 PDF 文件内表格进行数据提取

某天项目组来了个需求说需要提取 PDF 文件中数据作为数据沉淀使用,这是因为第三方系统不提供数据接口所以只能够出此下策。 就据我所知,PDF 文件内数据提取目前有 3 种解决方案: 第一种,资金足够的话可以直接通过人工智能对 PDF…...

完全保密的以太坊交易:Aztec网络的隐私架构

1. 引言 Aztec为隐私优先的以太坊zkRollup:即其为具有完全隐私保护的L2。 为了理解私有交易的范式变化性质,以及为什么将隐私直接构建到网络架构中很重要,必须首先讨论为什么以太坊不是私有的。 2. 以太坊:公有链 以太坊为具有…...

初识Java 9-1 内部类

目录 创建内部类 到外部类的链接 使用.this和.new 内部类和向上转型 在方法和作用域中的内部类 匿名内部类 嵌套类 接口中的类 从多嵌套的内部类中访问外部人员 本笔记参考自: 《On Java 中文版》 定义在另一个类中的类称为内部类。利用内部类,…...

合宙Air724UG LuatOS-Air LVGL API控件-屏幕横屏竖屏切换(Rotation)

屏幕横屏竖屏切换(Rotation) lvgl.disp_set_rotation(nil, lvgl.DISP_ROT_angle) 屏幕横屏竖屏切换显示,core版本号要>3202参数 参数类型释义取值nil无意义nilangle显示角度0,90,270,360 返回值nil 例子 lvgl.init()- -初始化 lvgl.disp_set_rotation(nil,…...

在Unity中,Instantiate函数用于在场景中创建一个新的游戏对象实例

在Unity中,Instantiate函数用于在场景中创建一个新的游戏对象实例。它的语法如下所示: public static Object Instantiate(Object original, Vector3 position, Quaternion rotation); original:要实例化的原始游戏对象。position&#xff1…...

解决 tesserocr报错 Failed to init API, possibly an invalid tessdata path : ./

问题描述 我们在初次使用tesserocr库的时候,可能会报以下错误: RuntimeError: Failed to init API, possibly an invalid tessdata path: ./ 这是因为我们在使用 conda 创建的环境中找不到"tessdata"这个文件夹。 解决办法 这时候把Tessera…...

使用Python CV2融合人脸到新图片--优化版

优化说明 上一版本人脸跟奥特曼图片合并后边界感很严重,于是查找资料发现CV2还有一个泊松函数很适合融合图像。具体代码如下: import numpy as np import cv2usrFilePath "newpic22.jpg" atmFilePath "atm2.jpg" src cv2.imrea…...

Python分享之对象的属性

Python一切皆对象(object),每个对象都可能有多个属性(attribute)。Python的属性有一套统一的管理方案。 属性的__dict__系统 对象的属性可能来自于其类定义,叫做类属性(class attribute)。类属性可能来自类定义自身,也可能根据类定义继承来的…...

编程参考 - std::exchange和std::swap的区别

这两个功能是C standard library中的Standard template library中的一部分。容易混淆,我们来看下它们的区别。 exchange: 这个函数是一个返回原先值的set函数。 std::exchange is a setter returning the old value. int z std::exchange(x, y); Af…...

Sentinel整合RestTemplate

resttemplate开启sentinel保护配置resttemplate.sentinel.enabledtrue配置sentinel-dashboard地址spring.cloud.sentinel.transport.dashboardlocalhost:8858\ spring.cloud.sentinel.transport.dashboard.port8739 实例化RestTemplate并加入SentinelRestTemplate注解Configura…...

微前端学习(下)

一、课程目标 qiankun 整体运行流程微前端实现方案二、课程大纲 qiankun 整体流程微前端方案实现DIY微前端核心能力1、微前端方案实现 基于 iframe 完全隔离的方案、使用纯的Web Components构建应用EMP基于webpack module federationqiankun、icestark 自己实现JS以及样式隔离2…...

Android Splash实现

1、创建Activity package com.wsy.knowledge.ui.splashimport android.animation.Animator import android.animation.AnimatorListenerAdapter import android.annotation.SuppressLint import android.os.Build import android.os.Looper import android.util.Log import an…...

FPGA projet : VGA

在vga屏幕上显示 &#xff1a; 野火科技 相比于上个工程&#xff0c;只需要修改 vga_pix 模块即可。 注意存储器类型变量的定义&#xff1a;reg 【宽度】<名称>【深度】 赋值 always &#xff08;poseedge vga_clk&#xff09;begin 为每一行赋值&#xff0c;不可位赋…...

JDK8 升级至JDK19

优质博文IT-BLOG-CN 目前部分项目使用JDK8&#xff0c;部分项目使用JDK19因此&#xff0c;环境变量中还是保持JDK8&#xff0c;只需要下载JDK19免安装版本&#xff0c;通过配置IDEA就可以完成本地开发。 一、IDEA 环境设置 【1】通过快捷键CTRL SHIFT ALT S或者File->P…...

Python3.10 IDLE更换主题

前言 自定义主题网上有很多&#xff0c;3.10IDLE的UI有一些新的东西&#xff0c;直接扣过来会有些地方覆盖不到&#xff0c;需要自己测试着添几行配置&#xff0c;以下做个记录。 配置文件路径 Python安装目录下的Lib\idlelib\config-highlight.def。如果是默认安装&#xf…...

C# OpenVino Yolov8 Pose 姿态识别

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp;namespace OpenVino_Yolov8_Demo {public…...

北邮22级信通院数电:Verilog-FPGA(1)实验一“跑通第一个例程” 过程中遇到的常见问题与解决方案汇总(持续更新中)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 问题一&#xff1a;Verilog代码没有跑通 报…...

CSS - 鼠标移入整行高亮显示,适用于会员套餐各参数对比页面(display: table,div 转表格形式)

效果图 可根据基础示例和进阶示例&#xff0c;复制进行改造样式。 如下图所示&#xff0c;本文提供 2 个示例。 基础示例 找个 HTML 页面&#xff0c;一键复制运行。 <body><h1 style"text-align: center;">基础示例</h1><section class"…...

无涯教程-JavaScript - ATAN2函数

描述 The ATAN2 function returns the arctangent, or inverse tangent, of the specified x- and ycoordinates, in radians, between -π/2 and π/2. 语法 ATAN2 (x_num, y_num)争论 Argument描述Required/OptionalX_numThe x-coordinate of the point.RequiredY_numThe…...

Tomcat 下部署 jFinal

1、检查web.xml 配置&#xff0c;在 tomcat 下部署需要检查 web.xml 是否存在&#xff0c;并且要确保配置正确&#xff0c;配置格式如下。 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"http://www.w3.org/2001/XMLSchema-i…...

【Spatial-Temporal Action Localization(二)】论文阅读2017年

文章目录 1. ActionVLAD: Learning spatio-temporal aggregation for action classification [code](https://github.com/rohitgirdhar/ActionVLAD/)[](https://github.com/rohitgirdhar/ActionVLAD/)摘要和结论引言&#xff1a;针对痛点和贡献相关工作模型框架思考不足之处 2.…...

二维码智慧门牌管理系统:数据现势性,满足应用需求的根本保证

文章目录 前言一、项目背景二、数据的现势性三、系统的优势四、应用前景 前言 在当今信息化社会&#xff0c;数据的重要性日益凸显&#xff0c;尤其是数据的现势性&#xff0c;它决定着服务的质量和满足应用需求的能力。近日&#xff0c;一个创新的二维码智慧门牌管理系统项目…...

BF算法(C++)简单讲解

BF算法匹配过程易理解&#xff0c;若匹配&#xff0c;子串和主串都往下移一位。不匹配时&#xff0c;主串回溯至本次匹配开始下标的下一位。例&#xff1a;图中第三趟匹配时&#xff0c;主串到第七位时与子串不匹配&#xff0c;这次匹配主串是从第三位开始的&#xff0c;所以下…...

JVM 虚拟机 ----> Java 类加载机制

文章目录 JVM 虚拟机 ----> Java 类加载机制一、概述二、类的生命周期1、类加载过程&#xff08;Loading&#xff09;&#xff08;1&#xff09;加载&#xff08;2&#xff09;验证&#xff08;3&#xff09;准备&#xff08;4&#xff09;解析&#xff08;5&#xff09;初始…...

《protobuf》基础语法2

文章目录 枚举类型ANY 类型oneof 类型map 类型改进通讯录实例 枚举类型 protobuf里有枚举类型&#xff0c;定义如下 enum PhoneType {string home_addr 0;string work_addr 1; }同message一样&#xff0c;可分为 嵌套定义&#xff0c;文件内定义&#xff0c;文件外定义。不…...

利用 SOAR 加快事件响应并加强网络安全

随着攻击面的扩大和攻击变得越来越复杂&#xff0c;与网络攻击者的斗争重担落在了安全运营中心 &#xff08;SOC&#xff09; 身上。SOC 可以通过利用安全编排、自动化和响应 &#xff08;SOAR&#xff09; 平台来加强组织的安全态势。这一系列兼容的以安全为中心的软件可加快事…...

做英文网站2014/运营推广计划

2019独角兽企业重金招聘Python工程师标准>>> http://elixir-lang.github.io/getting-started/binaries-strings-and-char-lists.html https://elixirforum.com/t/bitstring-and-binary/2351/4 字符串是怎么保存到计算机中的 iex>?a 97 iex>?吴 21556 a的cod…...

网站备案 多ip/免费创建个人博客网站

学习目的及目标 掌握UDP原理和工作过程 掌握乐鑫ESP32的UDP的程序设计 主要掌握UDP源码过程UDP科普(来自百度百科)UDP 是User Datagram Protocol的简称&#xff0c; 中文名是用户数据报协议&#xff0c;是OSI(Open System Interconnection&#xff0c;开放式系统互联) 参考模型…...

环境设计排版素材网站/百度网站怎样优化排名

转载自&#xff1a;http://www.cocoachina.com/gamedev/misc/2011/0627/2981.html 游戏一直是 App Store 应用里最热门、最赚钱的一大分类&#xff0c;iOS 游戏强调创意和趣味性的特点也让国内开发团队有更多一鸣惊人的机会。针对市场、玩家、开发商、成功案例等游戏开发要素&a…...

欧莱雅的网络营销策划方案/合肥seo代理商

7:30&#xff1a;起床。英国威斯敏斯特大学的研究人员发现&#xff0c;那些在早上5:22―7:21 分起床的人&#xff0c;其血液中有一种能引起心脏病的物质含量较高&#xff0c;因此&#xff0c;在7:21之后起床对身体健康更加有益。  打开台灯。“一醒来&#xff0c;就将灯打开&…...

网站分站怎么做/怎么做盲盒

1.检查libevent 首先检查系统中是否安装了libevent&#xff08;Memcache用到了libevent这个库用于Socket的处理&#xff09;。 # rpm -q libevent libevent-1.4.13-4.el6.i686 如果没有安装&#xff0c;需先安装libevent。 安装libevent&#xff1a; 1.使用yum源安装&#xff1…...

上网行为管理系统/淘宝关键词优化推广排名

解决方法&#xff1a; 1。 改表法。 可能是你的帐号不允许从远程登陆&#xff0c;只能在localhost。这个时候只要在localhost的那台电脑&#xff0c;登入mysql后&#xff0c;更改 "mysql" 数据库里的 "user" 表里的 "host" 项&#xff0c;从&quo…...