文章目录

  • 序言:本文的目标读者
  • 一、Python 家常话
  • 二、前期准备
    • Python IDE
    • 我想和你谈谈虚拟环境
    • 不如聊聊换源
    • 关于.whl
  • 三、Python 代码部分
  • 附赠

序言:本文的目标读者

为什么我要写这篇文章?
大概是淋过雨的人才会主动给人打伞吧,基于我个人的经验,如果不对,以你为准。

本文的读者应该是没有怎么接触过编程语言的人。
例如非计算机专业的大学生,但属于理工科的范畴内,不一定是想要学习这门语言,只是单纯的好奇。

又或者是已经工作了的人士,虽然不需要学习 python ,但是工作中不可避免地要接触到,希望更好的理解,有一个大致的思路框架。

一、Python 家常话

我首先想说的是 Python 是一门非常年轻的语言,或许你会很惊讶于“年轻”,但我想告诉你相比于 1970 年左右出现的 C 语言来说。

Python 是解释型语言,相比于 C Java 等传统语言来说,解释型可以浅显理解为无需编译。Python 诞生于1991 年(也可以认为是 1980)。

我们现在使用的 Python 通常是 Python3,它发布于 2008 年。对于如今的 Windows 用户而言,你不需要知道 Python2 的存在。如今,Python2 通常只存在于各种 Linux 系统发行版中,唯一需要注意的是,如今的 Linux 发行版中区分 Python3 和 Python2,你可以在终端输入 python2 ,通常它是 2.7 版本,这个版本是最后一个 Python2 版本。

我只是想告诉你,现在有任何人让你去学习 Python2,除非他是学者或者自创编程语言的大牛,否则我觉得他都是在坑你。Python2 和 Python3 在语法上做了修改,不完全向下兼容,当你看到 print 的写法时候你就应该可以知道它们确实不同。

如果你想学习编程语言,我非常不建议你用 Python3 上手,我建议你先学习 C。当然仅仅是个人建议,如果新手直接学习 Python3,会导致后续其他编程语言学习的困难。

好了接下来我想和你聊聊 Windows 上的 Python3,通常我们直接去官网下载最新版本的安装包即可。

这里我想告诉你 Python3 并非完全一致,3.7.14,3.8.16,3.10.9,3.11.1,Python 一直在更新,3 表示的是 Python3,后面的表示的是某个版本,我们通常叫 3.7,3.8,这些版本如果你有兴趣可以去看看,它们会明确指出更新了那些新的语法特性。

比如我非常喜欢的 f-string 格式化输出在 3.6 版本才推出的,也就意味着如果你下载使用的是 3.5 或者更早的版本,它将不支持该语法特性。

还有 match case 语法是 Python 3.10 才推出的新的语言特性,match case 的语法在 Rust 语言上很早就有了,Python 将它吸收过来了。

对于版本我还想多聊一些,Python 的强大在于第三方库,无数的作者开发第三方库给用户使用,有些第三方库可能对于过高的 Python 版本并没有做相应的支持,表现在安装会失败,或者无法正常使用等等。

Python3.8 我认为是当前最成熟的版本,大部分第三方库都对其有较好的支持,但遗憾的是你就没法体验 Python3.10 的特性了。不过问题不大,因为我们有虚拟环境。

二、前期准备

Python IDE

从官网下载 Python 安装包,安装完毕后,其实我们已经有了 IDE,这个 IDE 是自带的 IDEL,通常我们不使用它,如果有杠精说它完全可以使用没必要安装第三方 IDE,我只能说这个人不是傻就是坏。就像有人告诉你文本编辑器就可以写代码了,你说的都对。

我看到不少开发者喜欢使用 VSCode + 插件的方式作为 Python IDE,我承认这种方式是一种轻量级的方式,我曾经也是被网上很多吹捧的人忽悠了,其实体验还可以吧,如果我不曾使用 Pycharm 的话。Pycharm 大概属于那种用过后就没法再去使用 VSCode 了,毕竟正规的 IDE 和文本编辑器还是不一样的。VSCode + 插件的方式适合于轻量开发者,但不适合新手。

我只推荐 Pycharm,请下载“社区版”,专业版需要付费(支持版权)。下载最新的 Pycharm 社区版,我曾经看到同事用很老旧的社区版,单单是外观上看着就很揪心。

我们可以在电脑中安装任意多个版本的 Python,例如,可以安装 3.7,3.8,3.10,都没有关系。使用 Pycharm 的时候新建项目时候我们选择默认的 Virtualenv 即可,然后如果我们安装了多个版本的话可以在 Base Interpreter 处选择我们想要的版本,如果是学习可以直接选择最新的版本,如果是工作建议选择 3.8。

我想和你谈谈虚拟环境

软件开发中环境非常重要,如果我们不控制环境,别人将项目代码拿过去直接跑大概率时会有很多问题的。Pycharm 创建新项目选择好哪个版本后就会有一个文件 venv 当然你可以自己命名,默认是 venv。我见过有些不了解的人,在 Windows 命令行中使用 pip install xxx 某个第三方库,然后在 Pycharm 中试图使用结果报错。我们直接在 Windows cmd or powershell 中使用 pip 是会将第三方库装到系统环境路径中。而我们 Pycharm 新建项目时候创建了虚拟环境,我们的安装应该在这个虚拟环境中,避免污染电脑。

虚拟环境解决的一个问题是,假如你有两个项目,都依赖于同一个第三方库,但是一个依赖的是该库的旧版本,一个依赖的是最新的版本,且该第三方库新版本不兼容旧版本。这时候不使用虚拟环境的话,将会非常棘手。

pip freeze requirements.txt pip install requirements.txt 这两条命令就是将我们项目中使用到的第三方库保存下来,然后方便构建新环境时候重新下载。

Pycharm 的底部有个 Terminal 终端,如果虚拟环境启用,你应该可以在路径前有一个(venv),表示已经启用了虚拟环境,在这个虚拟环境中使用 pip install xxx 即可,当然你也可以直接在 Pycharm 中找到 Project->Python Interpreter,然后直接添加你要的第三方库即可

不如聊聊换源

你又没有想过,为什么 pip install xxx 就可以自动下载第三方库呢?如果使用过 linux 的人应该很清楚。pip 是一种包管理工具,Linux 也有如 apt dnf yum 等等。Python 有自己的一个软件仓库,当我们使用 pip install 的时候就会通过网络去仓库地址找对应的第三方库,众所周知,官方库是在国外的,所以我们经常听到一个词叫 “换源”。国内很多大公司都有镜像站点,所谓镜像就是完全一致,通常每天根据 Python 官方仓库更新,阿里,豆瓣,中科大,清华等等,推荐阿里,毕竟商业化公司。
关于换源可以看这篇:https://blog.csdn.net/qq_41133428/article/details/127346396

关于.whl

pip 不仅可以通过网络安装,还可以执行本地安装,.whl 文件麻烦的点在于需要对于自己电脑架构有一定的了解,找到正确的 .whl 文件,直接执行 pip install xxx.whl 即可。不过安装出现问题就需要自行解决了。

三、Python 代码部分

Pycharm 有一个 Console 大部分时候并没有什么问题,但是有些时候(我遇到过)如果出现异常可以在设置里面关闭 Console。Pycharm 的调试有个需要注意的地方就是断点调试必须使用 debug 模式才能进入你设置的断点。如果你只是打了断点,然后直接 run ,是不会触发调试的。对于初学者而言 我并不推荐 if __name__ == '__main__': 解释这句话需要花费一些时间。
你只管从上往下写,剩下的交给 Pycharm。我本来想说注意 Python 语法严格缩进的要求,但是交给 Pycham 就好了,它会帮你的。有一种情况就是复制别人的代码报错的问题,很可能是缩进的问题,如果不多,建议手写交给 Pycharm 去缩进就好了。我如此推崇 Pycharm 的原因就是,它真的很贴心,我哭死。什么 VSCode 还是老老实实做文本编辑器吧。顺便一提,VSCode 是我见过最惊艳的文本编辑器,符合我的审美。

我想谈谈第三方库名字的问题,大部分第三方库的名字和包名是一样的,例如我们安装 requests,pip install requests,使用的时候就是 import requests,但是有些并不是。比如大名鼎鼎的 opencv-python,安装是 pip install opencv-python,导入时候是 import cv2。

让我想想代码上该讲些什么?应该没了吧,嗯。不如,提下形参?

Python 对于传入参数并不像 C 这种语言一样要求严格,我们通常会提示参数类型,但这种提示你可以无视。所以,我们有时候需要检查传入参数类型,用它 “isinstance”。我们还可以对函数的返回值类型做出提示,以便使用者可以清楚的了解返回值的数据类型。看如下示例:

def foo(m_str: str, num: int = 100) -> int:if isinstance(m_str, int):result = m_str + numelif isinstance(m_str, str):result = num*2else:return numreturn result

在定义函数的时候,我告诉用户 m_str 这个传入参数类型应该是 str 类型,但是如果用户实际使用的时候给的是数字,程序并不会报错,而是会在 isinstance 中判断类型 int 为真,执行 m_str + num 的操作。注意到 def 行中的 ->int 这个是告诉用户返回的数据类型是 int ,当然你也可以返回 str。我举这个例子的目的是想告诉你,这些提示性质的东西并不会对代码有任何影响,但是好的代码应该有这些提示。这些提示是为了让使用的人舒服,而不是去给人家添堵。

忽然想到私有变量的事情,一句话就是,“Python 不存在绝对的私有变量”,不要和我杠,杠就是你对。关于私有变量这块展开来将又得很多字了。

这回真的,暂时没想到还有什么。

附赠

有些时候我们工作中会想要保存数据为 excel 的形式,方便其他同事直观看,但是 Python 并没有标准库可以操作,需要第三方库,有些时候使用者无法使用网络等情况下就会很麻烦。事实上,如果只是想要看数据的话,可以考虑存储为 csv 格式,excel 完全可以正常使用打开。并且如果忽然需要在 linux 使用的话,excel 文件是很麻烦的。如果不是有特殊需要,可以将数据保存为 csv 格式,Python 标准库就可以处理。

以后想到再补充吧

Python 入门指南 [闲聊]相关推荐

  1. python入门指南 小说-Python入门指南 作者:许半仙(4)

    Python入门指南 作者:许半仙(4) 字体:[大 中 小] 结果快下班的时候忽然来了个紧急任务,晚上得加班. 受申请了在家办公,把电脑背回家,并告知了攻这一消息. 攻体贴地揉了揉受的脑袋,说:&q ...

  2. python入门指南 小说-Python 入门指南

    Python 入门指南¶ Release:3.6.3 Date:Dec 10, 2017 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面 ...

  3. python入门教程 官方-Python 入门指南

    Python 入门指南¶ Release:3.6.3 Date:Dec 10, 2017 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面 ...

  4. python入门指南by许半仙长佩_有哪些好看的耽美文啊?

    1.<Python入门指南>作者:许半仙 文案 苦逼程序员遇上夜场付老狗. 微博上瞎写的一个脑洞,凑满一章就搬过来. 精英攻x二货受. p友变真爱的无脑小甜饼. 作品标签:脑洞大纲,搞笑, ...

  5. python入门指南by许半仙-推文:拯救书荒(短篇小甜饼合集)

    <你老公的腿短了> 作者:许半仙 首发:长佩 因为作者简介写了跟没写一样,所以我来讲        一下.开篇攻就出了车祸,受后来发现是攻以前的白月光回来了,攻去接他才出了车祸,然后他察觉 ...

  6. python入门指南by-Python 入门指南

    Python 入门指南¶ Release:3.6.3 Date:Nov 26, 2017 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面 ...

  7. python编程入门指南-Python 入门指南

    Python 入门指南¶ Release:3.6.3 Date:Nov 26, 2017 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面 ...

  8. python入门指南-Python 入门指南

    Python 入门指南¶ Release:3.6.3 Date:Dec 10, 2017 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面 ...

  9. python入门指南小说-Python 入门指南

    Python 入门指南¶ Release:3.6.3 Date:Dec 10, 2017 Python 是一门简单易学且功能强大的编程语言.它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面 ...

最新文章

  1. Stm32学了好久了,为什么做项目还是力不从心?
  2. JADAK收购RFID方案商SkyeTek,增强竞争力
  3. java bytebuffer 大小,bytebuffer 获取长度
  4. U-Boot 提供的基本命令
  5. 弹窗要打开或保存来自_如何让 PopClip 支持印象笔记客户端:保存到印象笔记amp;高亮文字...
  6. 一步步编写操作系统 50 加载内核3
  7. Cortex-M3栈内存操作
  8. Qt简介以及如何配置Qt使用VS2010进行开发
  9. 英语学习笔记2019-10-18
  10. 电子书下载:Construct Game Development Beginner's Guide
  11. flutter html 加载_Flutter 加载本地 HTML 文件
  12. 【Erlang新手成长日记】Erlang开源项目推荐
  13. 我儿子竟跟男孩子抱在一起
  14. Android服务注册完整过程源码分析
  15. python就业方向有哪些?
  16. windows资源管理器转圈崩溃
  17. Cesium对entity的操作以及资源记录(增删改查)
  18. Lintcode 1667.石头
  19. 线性代数系列(四)--解方程组
  20. http://bbs.sjz7.com/forum.php,国内 3S 论坛集合(最新)

热门文章

  1. GD库 图片水印+文字水印+缩率图+圆形图
  2. PT100温度传感器调试
  3. Stack Overflow : 55.9%的Java程序员想“抛弃”Java
  4. 从未在一起更让人遗憾_“从未在一起和最终没有在一起哪个更遗憾”
  5. 影视资源采集站-影视资源批量采集API工具方法
  6. 编程狂人|大型系统存储层迁移实践
  7. 再次携号转网_中国移动损招尽出,携号转网再次无望,网友有苦难言!
  8. course-to-fine(3) CURRICULUM LEARNING
  9. 浅谈Dynamic Web TWAIN SDK、Dynamsoft Service及扫描仪TWAIN驱动的区别(从版本13开始)
  10. php多选怎么实现,php怎么实现多选删除功能