Lesson1:初识编程语言、Python环境搭建

news2024/9/24 4:24:18

一、什么是编程语言

用来和计算机交流,控制计算机,让计算机按照我们的要求做事情,这样的语言叫做编程语言。

Note:编程语言四个字可以拆成两个部分进行理解——编程语言

所谓语言,它的作用就是交流,向对方传达说话人想要表达的意思。在我们日常生活中,汉语、英语、德语等都是人与人交流常用的语言。

所谓编程,就是编写程序。

我们即将要学习的Python就是一种编程语言,通过Python,我们可以和计算机交流,控制计算机,让计算机按照我们的要求做事情。

因为是人与计算机进行交流,我们通常也把编程语言叫做计算机语言。

二、编程语言的发展历程

计算机语言经历了3个阶段:机器语言、汇编语言、高级语言。Python属于高级语言。

  • 机器语言:用二进制编码表示的机器指令,是CPU能直接识别并执行的唯一一种语言。
  • 汇编语言:符号语言。用与机器指令含义相近的英文缩写、字母和数字等符号来取代机器指令。
  • 高级语言:机器语言和汇编语言都是面向机器(硬件)的语言,占用内存空间少,运行速度快,但用起来繁琐费时,通用性差;而高级语言是面向用户的语言,更接近人类的自然语言,且无论何种机型的计算机,只要配备上相应的高级语言的编译或解释程序,就可以实现通用。

Note:

第一阶段(机器语言):

机器语言,也就是二进制语言。计算机是一个硬件,需要通过电信号来传达信息。而电又有正电负电之分,刚好对应了计算机的1和0。因此早期,我们经常写0101101这样类似的二进制来向计算机传达我们的信息。但很显然,常人很难编写二进制,上手麻烦,故早期的编程需要查手册,只有一些科学家才能实现对计算机的交流。

第二阶段(汇编语言):

随着语言的发展,我们又产生了汇编语言。在第一阶段的过程中,我们常发现有一些二进制指令会是我们经常用到的,具有特殊的意义。比如说011101代表着加法,我们就用ADD来表示这段二进制指令,再比如说011001代表着删除,我们就可以用DEL来代替这段二进制指令。这些代替一长串二进制指令的特殊单词,我们将表明指令功能的英语单词或其缩写称为助记符。由这些助记符组成的语言,就是汇编语言。很显然,汇编语言的使用比二进制语言方便了很多,所以第二阶段有更多人可以写代码了,不再仅仅局限于科学家们查手册了。

第三阶段(高级语言):

这一阶段的语言,我们称之为高级语言。起初的B语言,再到C语言,C++,Java,Python等,我们发现,计算机对我们写代码的门槛越来越低,从早期的二进制到现如今的高级语言,我们发现其功能也越来越多,使用的人也越来越多,可以说是流行,所以我们经常提倡人人都可以掌握一些编程。

三、编译型语言&解释型语言

用任何编程语言来开发程序,都是为了让计算机干活,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。

这种“翻译”通常有两种方式,即编译方式和解释方式。Python属于解释型语言。

  • 编译方式:源代码文件经过编译器翻译成目标程序文件(机器语言表示),然后计算机再执行该目标程序。
  • 解释方式:源代码文件经过解释器逐句输入逐句翻译,且计算机一句句执行,并不产生目标程序文件。

Note:编译型语言和解释型语言的生动解释

编译型:用中英文词典(翻译器)将一本英文书一次性翻译(编译)成一本中文书。以后查看直接就是中文了。可想而知,以后读书(运行)会非常非常方便。

解释型:用中英文词典(翻译器)将一本英文书读一段翻译一段(解释)中文。以后查看时还是需要重新翻译。这样效率会低一些,必须依赖解释器,但是跨平台性好。

四、Python是什么样的语言

Python是著名的“龟叔”Guido van Rossum(吉多·范罗苏姆,出生成长于荷兰,现美国国籍)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。

现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。

TIOBE排行榜(每月更新一次)很好的反映了各个编程语言的热门程度。

TIOBE Index - TIOBEhttps://www.tiobe.com/tiobe-index/

Note:TIOBE排行榜仅仅反映了某个阶段编程语言的热门程度,但不能反映语言的好坏,每个编程语言都有自己擅长的领域。

五、Python环境搭建

1、Python安装

  • 官方宣布,2020年1月1日,停止Python 2的更新。Python 2.7被确定为最后一个Python 2.x版本。Python 3和Python 2还是有差别的,所以现在学习Python,通常选择Python 3.x。大家可以根据情况选择不同的Python 3.x版本安装。
  • 建议直接安装Anaconda,它是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。这样会比单独安装Python,再去安装一堆的工具包更省事。

Anaconda | Anaconda Distributionhttps://www.anaconda.com/products/distribution

Note:

【1】在安装Anaconda时,若出现下面窗口,请将下面选项勾选上,将Anaconda3添加到系统PATH环境变量,若不勾选需自己手动添加很麻烦。其他步骤点下一步即可。

【2】安装完Anaconda之后,打开会出现命令窗口,输入python会显示你当前安装的python版本,此时说明你已经安装python成功了。

2、IDE安装

  • 安装好Python之后就可以在命令行写程序了,但是会发现用命令行写代码不是很方便,所以就可以使用IDE(集成开发环境)来写代码,因为IDE集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务,可以大大提升我们的工作效率。
  • 主流的Python IDE有:Vim、VSCode、PyCharm、Jupyter等等,个人使用VSCode。
  • 完全可以根据个人的习惯选择不同的IDE。

Visual Studio Code - Code Editing. Redefinedhttps://code.visualstudio.com/

Note:

【1】刚安装的VSCode为英文界面,如果不习惯英文界面可以下载中文包,下载步骤如图所示。

【2】安装完VSCode后,我们目的是为了在VSCode上写Python程序,所以需要将Anaconda和VSCode关联起来。因此需要在VSCode上安装Python插件并且配置环境,步骤如图所示。

③完成上面步骤之后,就可以在VSCode中编写Python代码了。

六、Python之禅(Zen of Python)

这是Python的一个小彩蛋,执行import this,会输出一段文字,这段文字可以理解为Python中的『八荣八耻』。Python之禅列出了Python设计的原则与哲学,有助于理解与使用这种语言。作者是Tim Peters。

import this

翻译如下:

  • 优美胜于丑陋(Python以编写优美的代码为目标)
  • 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
  • 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
  • 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
  • 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
  • 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
  • 可读性很重要(优美的代码是可读的)
  • 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
  • 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写except:pass风格的代码)
  • 当存在多种可能,不要尝试去猜测
  • 而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
  • 虽然这并不容易,因为你不是Python之父(这里的Dutch是指作者Guido)
  • 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
  • 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
  • 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

七、VSCode基本操作

通过VSCode查看Python语法提示、报错提示以及调试代码(debug)。

print("执行第1行啦")
print(2 / 0)  # 报错
print("执行第3行啦")
a = 123

def add(left, right):
    print("执行第7行啦")
    print("执行第8行啦", left + right)

print("执行第10行啦")
add(3, 4)
a = 124
print("执行第13行啦")

1、语法提示

将鼠标光标停留在某函数或变量几秒钟,会出现该函数或变量的语法提示。

ctrl+鼠标左键会跳转到某函数或变量的定义。

2、报错提示

当代码有错误时,运行该程序,终端会报告错误代码的位置以及错误类型。

3、调试代码(debug)

开始debug之前,首先需要学会在代码中打断点,非常简单,直接在代码对应行左侧单击鼠标左键即可。

然后,启动程序不能使用run的方式,而是要点击debug。

当看到如下状态的时候,说明已经进入了断点。

然后我们会在VSCode中看到这样一个界面,有很多按钮,接下来逐个给大家讲解每个按钮的作用。

1:执行程序,但不是逐行执行,而是跳转到下一个断点处。

2:从断点处开始,逐行执行代码,如果遇到方法,直接跳过。

3:从断点处开始,逐行执行代码,如果遇到方法,会进入方法,但是只能进入自定义方法,不会进入官方类库的方法。

4:从当前断点处回退,回到方法的调用处。

5:重新运行程序,进入debug模式。

6:终止程序的运行。

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

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

相关文章

Redis实战—黑马点评(一) 登录篇

Redis实战 — 黑马点评(一) 登录篇 来自黑马的redis课程的笔记 【黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】 目录Redis实战 — 黑马点评(一) 登录篇1. 项目…

深度学习笔记:使用随机梯度下降法识别mnist数据集

深度学习算法实现流程: 1 从训练数据中随机选出一部分数据,称为mini-batch。我们的目标为减小mini-batch损失函数的值 2 计算损失函数关于权重的梯度。梯度方向即为损失函数值减小最快的方向 3 将权重沿梯度下降方向更新 4 重复以上步骤,在…

【自动驾驶汽车技术 | 车载雷达系统】

本文编辑:调皮哥的小助理 1、摘要 自动驾驶汽车传感器系统一般包括4种雷达:激光雷达(Lidar)、毫米波雷达(mmWave Radar)、超声波雷达(Ultrasonic Radar)和红外雷达(Infrared Radar)。目前激光雷达和毫米波雷达是基本和必要的车载传感器设备,…

I.MX6ULL内核开发8:linux设备驱动模型

目录 一、为什么需要设备驱动模型 二、sysfs概述 驱动模型一 驱动模型二 kobject kset kobj_type 一、为什么需要设备驱动模型 早期内核(2.4之前)没有统一的设备驱动模型,但是照样可以使用(之前的led字符设备驱动&#xff…

2023-2-12刷题情况

字母板上的路径 题目描述 我们从一块字母板上的位置 (0, 0) 出发,该坐标对应的字符为 board[0][0]。 在本题里,字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”],如下所示。 我们可以按下面的指令规则行动…

合宙Air103|fbd数据库| fskv - 替代fdb库|LuatOS-SOC接口|官方demo|学习(16):类redis的fbd数据库及fskv库

基础资料 基于Air103开发板:🚗 Air103 - LuatOS 文档 上手:开发上手 - LuatOS 文档 探讨重点 对官方社区库接口类redis的fbd数据库及fskv库的调用及示例进行复现及分析,了解两库的基本原理及操作方法。 软件及工具版本 Luat…

肝了几天的Git入门教程,收获满满

1.简介 谈及版本控制系统,或许大多数程序员最开始接触的都是SVN(Subversion),它是一个集中式的版本控制系统,使用的时候需要提供一台的服务器来进行部署,所有的更新与同步操作都需要与这台服务器进行交互&…

windows/linux下Qt可执行程序打包,linux桌面双击运行程序sh脚本

1、windows下Qt打包 windows下Qt的可执行文件打包简单的来说就是利用Qt自带依赖的打包工具windeployqt进行打包,该工具存在Qt安装目录下,执行命令为:windeployqt name.exe 打包依赖文件可参考如下链接中1-7步,后面的步骤是打包依…

156、【动态规划】AcWing ——3. 完全背包问题:二维数组+一维滚动数组(C++版本)

题目描述 原题链接:3. 完全背包问题 解题思路 完全背包相对于01背包来说,对同一个物品可以选择多次。而01背包对同一个物品只能选择一次。 递推公式上的区别:01背包是dp[i][j] max(dp[i - 1][j], dp[i - 1][j - v[i]] w[i]),…

14. 最长公共前缀

14. 最长公共前缀 一、题目描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: …

在线支付系列【23】支付宝支付接入指南

有道无术,术尚可求,有术无道,止于术。 文章目录前言接入指南1. 创建应用2. 绑定应用3. 配置密钥4. 上线应用5. 开通产品沙箱环境开发前准备(沙箱环境)1. 获取参数、秘钥、证书2. 下载支付宝客户端3. 案例演示前言 在之…

一个自动配置 opengrok 多项目的脚本

前段时间在服务器上配置 opengrok 阅读代码,项目有很多个,一个一个手动配置比较繁琐。 我从搭建 tomcat 和 opengrok,到配置和索引完 5 个 Android 项目,用了差不多一整天。 要是再让我手动配置几个项目,估计真要崩溃…

学习Request和Response这一篇就够啦~

Request(请求) : Request:获取请求数据 Response:设置响应数据 Request继承体系: 使用request对象,查阅JavaEE API文档的HttpServeltRequest接口 Tomcat需要解析请求数据,封装为request对象,并且创建requ…

知识图谱嵌入技术研究综述

作者 张天成 1 , * 田 雪 1 , * 孙相会 1 , * 于明鹤 2 , * 孙艳红 1 , * 于 戈 摘要 知识图谱 是一种用图模型来描述知识和建模事物之间的关联关系的技术。 知识图谱嵌入 作为一种被广泛采用的知识表示方法。 主要思想是将知识图谱中的实体和关系嵌入到连续的向量空间中…

Ansible---playbook剧本

目录 引言:什么是playbook? 一、Playbook 1.1、playbook中的核心元素 1.2、playbook中的基础组件 1.3、playbook格式说明 1.4、实例:httpd服务剧本 二、playbook中的模块 2.1、Templates 模块 2.2、tags 模块 2.3、Roles 模块 引言&…

关于链表中插入结点的操作……

服了,好久没敲链表了,这都忘了 newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur-…

科技常识就像雨衣,要常备哦

科技常识就像雨衣,平常不准备,遇雨成落汤鸡 昨日晨跑遇雨,随身带轻便雨塑料雨衣 趣讲大白话:晴天挖水渠 *********** 信息科技是现代科技的【火车头】 往前看:要关注趋势 往后看:要了解行业历史 在当下&…

数据结构 | 栈与队列

🔥Go for it!🔥 📝个人主页:按键难防 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 📖系列专栏:数据结构与算法 &#x1f52…

使用C#编写k8s CRD Controller

本文项目地址:k8s-crd - Repos (azure.com)CRDCRD指的是Custom Resource Definition。开发者更多的关注k8s对于容器的编排与调度,这也是k8s最初惊艳开发者的地方。而k8s最具价值的地方是它提供了一套标准化、跨厂商的 API、结构和语义。k8s将它拥有的一切…

【测试开发】web 自动化测试实战 --- MuiscServerTest

目录界面测试功能测试1. 登录注册模块功能测试2. 音乐列表页自动化测试3. 喜欢音乐列表页自动化测试4. 上传音乐模块自动化测试5. 以上所有测试用例集成测试套件项目测试亮点web 自动化测试实战就通过测试自己的 onlinemusicserver 音乐服务器项目进行测试,通过 sel…