Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Python100天学习笔记】Day1 初识Python

【Python100天学习笔记】Day1 初识Python

作者头像
天道Vax的时间宝藏
发布于 2021-12-02 05:45:03
发布于 2021-12-02 05:45:03
66300
代码可运行
举报
运行总次数:0
代码可运行

初识Python

Python简介

Python的历史
  1. 1989年圣诞节:Guido von Rossum开始写Python语言的编译器
  2. 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,还有对列表、字典等核心数据类型,同时支持以模块为基础来构造应用程序。
  3. 1994年1月:Python 1.0正式发布。
  4. 2000年10月16日:Python 2.0发布,增加了完整的垃圾回收,提供了对Unicode的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
  5. 2008年12月3日:Python 3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python 2.x版本,所以Python 3.x的很多新特性后来也被移植到Python 2.6/2.7版本中。

目前我们使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以阅读名为《Python简史》的网络文章。

Python的优缺点

Python的优点很多,简单的可以总结为以下几点。

  1. 简单明了,学习曲线低,比很多编程语言都容易上手。
  2. 开放源代码,拥有强大的社区和生态圈,尤其是在数据分析机器学习领域。
  3. 解释型语言,天生具有平台可移植性,代码可以工作于不同的操作系统。
  4. 对两种主流的编程范式(面向对象编程和函数式编程)都提供了支持。
  5. 代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。

Python的缺点主要集中在以下几点。

  1. 执行效率稍低,对执行效率要求高的部分可以由其他语言(如:C、C++)编写。
  2. 代码无法加密,但是现在很多公司都不销售卖软件而是销售服务,这个问题会被弱化。
  3. 在开发时可以选择的框架太多(如Web框架就有100多个),有选择的地方就有错误。
Python的应用领域

目前Python在Web应用后端开发、云基础设施建设、DevOps、网络数据采集(爬虫)、自动化测试、数据分析、机器学习等领域都有着广泛的应用。

安装Python解释器

想要开始Python编程之旅,首先得在自己使用的计算机上安装Python解释器环境,下面将以安装官方的Python解释器为例,讲解如何在不同的操作系统上安装Python环境。官方的Python解释器是用C语言实现的,也是使用最为广泛的Python解释器,通常称之为CPython。除此之外,Python解释器还有Java语言实现的Jython、C#语言实现的IronPython以及PyPy、Brython、Pyston等版本,有兴趣的读者可以自行了解。

Windows环境

可以在Python官方网站下载到Python的Windows安装程序(exe文件),需要注意的是如果在Windows 7环境下安装Python 3.x,需要先安装Service Pack 1补丁包(可以通过一些工具软件自动安装系统补丁的功能来安装),安装过程建议勾选“Add Python 3.x to PATH”(将Python 3.x添加到PATH环境变量)并选择自定义安装,在设置“Optional Features”界面最好将“pip”、“tcl/tk”、“Python test suite”等项全部勾选上。强烈建议选择自定义的安装路径并保证路径中没有中文。安装完成会看到“Setup was successful”的提示。如果稍后运行Python程序时,出现因为缺失一些动态链接库文件而导致Python解释器无法工作的问题,可以按照下面的方法加以解决。

如果系统显示api-ms-win-crt*.dll文件缺失,可以参照《api-ms-win-crt*.dll缺失原因分析和解决方法》一文讲解的方法进行处理或者直接在微软官网下载Visual C++ Redistributable for Visual Studio 2015文件进行修复;如果是因为更新Windows的DirectX之后导致某些动态链接库文件缺失问题,可以下载一个DirectX修复工具进行修复。

Linux环境

Linux环境自带了Python 2.x版本,但是如果要更新到3.x的版本,可以在Python的官方网站下载Python的源代码并通过源代码构建安装的方式进行安装,具体的步骤如下所示(以CentOS为例)。

  1. 安装依赖库(因为没有这些依赖库可能在源代码构件安装时因为缺失底层依赖库而失败)。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
  1. 下载Python源代码并解压缩到指定目录。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
xz -d Python-3.7.6.tar.xz
tar -xvf Python-3.7.6.tar
  1. 切换至Python源代码目录并执行下面的命令进行配置和安装。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd Python-3.7.6
./configure --prefix=/usr/local/python37 --enable-optimizations
make && make install
  1. 修改用户主目录下名为.bash_profile的文件,配置PATH环境变量并使其生效。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ~
vim .bash_profile
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# ... 此处省略上面的代码 ...

export PATH=$PATH:/usr/local/python37/bin

# ... 此处省略下面的代码 ...
  1. 激活环境变量。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source .bash_profile
macOS环境

macOS也自带了Python 2.x版本,可以通过Python的官方网站提供的安装文件(pkg文件)安装Python 3.x的版本。默认安装完成后,可以通过在终端执行python命令来启动2.x版本的Python解释器,启动3.x版本的Python解释器需要执行python3命令。

运行Python程序

确认Python的版本

可以Windows的命令行提示符中键入下面的命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python --version

在Linux或macOS系统的终端中键入下面的命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 --version

当然也可以先输入pythonpython3进入交互式环境,再执行以下的代码检查Python的版本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys

print(sys.version_info)
print(sys.version)
编写Python源代码

可以用文本编辑工具(推荐使用SublimeVisual Studio Code等高级文本编辑工具)编写Python源代码并用py作为后缀名保存该文件,代码内容如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print('hello, world!')
运行程序

切换到源代码所在的目录并执行下面的命令,看看屏幕上是否输出了"hello, world!"。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python hello.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 hello.py
代码中的注释

注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性和可维护性,当然也可以将源代码中不需要参与运行的代码段通过注释来去掉,这一点在调试程序的时候经常用到。注释在随源代码进入预处理器或编译时会被移除,不会在目标代码中保留也不会影响程序的执行结果。

  1. 单行注释 - 以#和空格开头的部分
  2. 多行注释 - 三个引号开头,三个引号结尾
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"""
第一个Python程序 - hello, world!
向伟大的Dennis M. Ritchie先生致敬

Version: 0.1
Author: 骆昊
"""
print('hello, world!')
# print("你好, 世界!")

Python开发工具

IDLE - 自带的集成开发工具

IDLE是安装Python环境时自带的集成开发工具,如下图所示。但是由于IDLE的用户体验并不是那么好所以很少在实际开发中被采用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Am7QBTKu-1638276940373)(C:/Users/VAXTIA~1/AppData/Local/Temp/BNZ.61a61e9a1f64c8f/res/python-idle.png)]

IPython - 更好的交互式编程工具

IPython是一种基于Python的交互式解释器。相较于原生的Python交互式环境,IPython提供了更为强大的编辑和交互功能。可以通过Python的包管理工具pip安装IPython,具体的操作如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install ipython

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip3 install ipython

安装成功后,可以通过下面的ipython命令启动IPython,如下图所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bhczkw1W-1638276940374)(C:/Users/VAXTIA~1/AppData/Local/Temp/BNZ.61a61e9a1f64c8f/res/python-ipython.png)]

Sublime Text - 高级文本编辑器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EXPsU0qQ-1638276940375)(C:/Users/VAXTIA~1/AppData/Local/Temp/BNZ.61a61e9a1f64c8f/res/python-sublime.png)]

说明:事实上Visual Studio Code可能是更好的选择,它不用花钱并提供了更为完整和强大的功能,有兴趣的读者可以自行研究。

PyCharm - Python开发神器

PyCharm的安装、配置和使用在《玩转PyCharm》进行了介绍,有兴趣的读者可以选择阅读。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WxqOtQs2-1638276940377)(C:/Users/VAXTIA~1/AppData/Local/Temp/BNZ.61a61e9a1f64c8f/res/python-pycharm.png)]

练习

1. 在Python交互式环境中输入下面的代码并查看结果,请尝试将看到的内容翻译成中文。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import this

说明:输入上面的代码,在Python的交互式环境中可以看到Tim Peter撰写的“Python之禅”,里面讲述的道理不仅仅适用于Python,也适用于其他编程语言。

2. 学习使用turtle在屏幕上绘制图形。

说明:turtle是Python内置的一个非常有趣的模块,特别适合对计算机程序设计进行初体验的小伙伴,它最早是Logo语言的一部分,Logo语言是Wally Feurzig和Seymour Papert在1966发明的编程语言。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import turtle

turtle.pensize(4)
turtle.pencolor('red')

turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)

turtle.mainloop()

本章提供的代码中还有画国旗和画小猪佩奇的代码,有兴趣的读者请自行研究。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/11/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python基础入门
1. 1989年圣诞节:Guido von Rossum开始写Python语言的编译器。 2. 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本Jython和IronPython,以及PyPy、Brython、Pyston等其他实现),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,同时提供了“列表”和“字典”等核心数据类型,同时支持以模块为基础的拓展系统。 3. 1994年1月:Python 1.0正式发布。 4. 2000年10月16日:Python 2.0发布,增加了实现完整的[垃圾回收](https://zh.wikipedia.org/wiki/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6_(%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A7%91%E5%AD%B8)),提供了对[Unicode](https://zh.wikipedia.org/wiki/Unicode)的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。 5. 2008年12月3日:Python 3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python 2.x版本,所以Python 3.x的很多新特性后来也被移植到Python 2.6/2.7版本中。
爱喝水的木子
2022/05/11
7120
【Python100天学习笔记】网络编程和应用开发
计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数,而计算机网络也可以称得上是一个“复杂巨系统”,对于这样的系统,我们不可能用一两篇文章把它讲清楚,有兴趣的读者可以自行阅读Andrew S.Tanenbaum老师的经典之作《计算机网络》或Kurose和Ross老师合著的《计算机网络:自顶向下方法》来了解计算机网络的相关知识。
天道Vax的时间宝藏
2021/12/02
5250
【Python100天学习笔记】Day7 字符串和常用数据结构
第二次世界大战促使了现代电子计算机的诞生,最初计算机被应用于导弹弹道的计算,而在计算机诞生后的很多年时间里,计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫ENIAC(电子数值积分计算机),诞生于美国的宾夕法尼亚大学,每秒钟能够完成约5000次浮点运算。随着时间的推移,虽然数值运算仍然是计算机日常工作中最为重要的事情之一,但是今天的计算机处理得更多的数据可能都是以文本的方式存在的,如果我们希望通过Python程序操作本这些文本信息,就必须要先了解字符串类型以及与它相关的知识。
天道Vax的时间宝藏
2021/12/02
3510
【Python100天学习笔记】Day8 面向对象编程基础
活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法。
天道Vax的时间宝藏
2021/12/02
2830
【Python100天学习笔记】Day9 面向对象进阶
在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程进行更为深入的了解。
天道Vax的时间宝藏
2021/12/02
2470
【Python100天学习笔记】Day11 文件和异常
实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大家自行通过维基百科进行了解。
天道Vax的时间宝藏
2021/12/02
1K0
Python学习笔记_Day01
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qA8upgBq-1584409255959)(C:\Users\daiyajie\AppData\Roaming\Typora\typora-user-images\1584352090231.png)]
非著名运维
2022/06/22
4650
Python学习笔记_Day01
Pandas 学习手册中文第二版:1~5
欢迎来到《Pandas 学习手册》! 在本书中,我们将进行一次探索我们学习 Pandas 的旅程,这是一种用于 Python 编程语言的开源数据分析库。 pandas 库提供了使用 Python 构建的高性能且易于使用的数据结构和分析工具。 pandas 从统计编程语言 R 中带给 Python 许多好处,特别是数据帧对象和 R 包(例如plyr和reshape2),并将它们放置在一个可在内部使用的 Python 库中。
ApacheCN_飞龙
2023/04/23
8.9K0
Pandas 学习手册中文第二版:1~5
python学习历程之----基础篇(一)
从今天起,我们就正式开启了编程语言的学习之路了,在上一篇文章中呢,我们介绍了编程语言环境的搭建,还不会的伙伴们,可以回看上一篇文章哦,对于python编程呢,我们准备采取以下几个板块开始,分别是:基础篇,实战篇(也有可能是一个项目,一寸照换背景软件,个性化签名软件,人脸检测等等),进阶篇,真正做到从入门到能进阶的一个过程。我认识的很多人都说,python语言很简单,在很多地方都有用到。其实小编认为,任何语言都有一个学习的过程,单纯的说它简单或许不太严格,只是编程的人对哪一门语言用的比较多,用的比较熟而已,因为任何一门语言到深处都是不太容易的。python相对于大多数编程语言来说呢,有个优点就是入门相对快一些,下面就开始进入正题了,多点耐心哦。
用户5410712
2022/06/01
3750
python学习历程之----基础篇(一)
树莓派计算机视觉编程:11~13
本章是我们在前面各章中学习和展示的所有计算机视觉概念的最终总结。 在本章中,我们将使用我们较早学习的计算机视觉操作来实现一些实际项目。 我们还将学习一些新概念,例如背景减法和光流计算,然后在小型应用中进行演示。 本章包含许多动手的编程示例,以及有关代码和新功能的详细说明。
ApacheCN_飞龙
2023/04/27
1.5K0
Python 机器人学习手册:1~5
本书的主要目的是教您如何从头开始构建自动移动机器人。 机器人将使用 ROS 进行编程,其操作将使用名为 Gazebo 的模拟器进行模拟。 在接下来的章节中,您还将看到使用 ROS 的机器人的机械设计,电路设计,嵌入式编程和高级软件编程。
ApacheCN_飞龙
2023/04/27
2.6K0
【Python100天学习笔记】Day12 正则表达式
使用正则表达式 正则表达式相关知识 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是一种工具,它定义了字符串的匹配
天道Vax的时间宝藏
2021/12/02
5790
NumPy 和 Pandas 数据分析实用指南:1~6 全
在本章中,我们将讨论如何安装和管理 Anaconda。 Anaconda 是一个包,我们将在本书的以下各章中使用。
ApacheCN_飞龙
2023/04/23
5.6K0
【Python100天学习笔记】Day13 进程和线程
今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持“多任务”的操作系统,这使得我们可以同时运行多个程序,也可以将一个程序分解为若干个相对独立的子任务,让多个子任务并发的执行,从而缩短程序的执行时间,同时也让用户获得更好的体验。因此在当下不管是用什么编程语言进行开发,实现让程序同时执行多个任务也就是常说的“并发编程”,应该是程序员必备技能之一。为此,我们需要先讨论两个概念,一个叫进程,一个叫线程。
天道Vax的时间宝藏
2021/12/02
5050
Note_Spark_Day01:Spark 基础环境
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Rk9bK5g-1625406507847)(/img/image-20210419160056620.png)]
Maynor
2021/12/07
6300
Note_Spark_Day01:Spark 基础环境
Scala第一章节
​ Scala(斯嘎拉)这个名字来源于"Scalable Language(可伸缩的语言)", 它是一门基于JVM的多范式编程语言, 通俗的说: Scala是一种运行在JVM上的函数式的面向对象语言. 之所以这样命名, 是因为它的设计目标是: 随着用户的需求一起成长. Scala可被广泛应用于各种编程任务, 从编写小型的脚本到构建巨型系统, 它都能胜任. 正因如此, Scala得以提供一些出众的特性, 例如: 它集成了面向对象编程和面向函数式编程的各种特性, 以及更高层的并发模型.
Maynor
2021/04/09
4140
python基础概述
python诞生于1989年,创始人 吉多·范罗苏姆(Guido van Rossum)。python是一种 C和shell 之间,功能全面,易学易用,可拓展的语言。 如下是最新的TIOBE排行榜(https://www.tiobe.com/tiobe-index )
py3study
2020/01/09
6830
python基础概述
Python 机器人学习手册:6~10
在上一章中,我们讨论了构建机器人所需的硬件组件的选择。 机器人中的重要组件是执行器和传感器。 致动器为机器人提供移动性,而传感器则提供有关机器人环境的信息。 在本章中,我们将集中讨论我们将在该机器人中使用的不同类型的执行器和传感器,以及如何将它们与 Tiva C LaunchPad 进行接口,Tiva C LaunchPad 是德州仪器(TI)的 32 位 ARM 微控制器板,在 80MHz。 我们将从讨论执行器开始。 我们首先要讨论的执行器是带有编码器的直流齿轮电动机。 直流齿轮电动机使用直流电工作,并通过齿轮减速来降低轴速并增加最终轴的扭矩。 这类电机非常经济,可以满足我们的机器人设计要求。 我们将在机器人原型中使用该电机。
ApacheCN_飞龙
2023/04/27
3.5K0
Python Web 深度学习实用指南:第三部分
本节将说明 API 在软件开发中的一般用法,并说明如何使用不同的最新深度学习 API 来构建智能 Web 应用。 我们将涵盖自然语言处理(NLP)和计算机视觉等领域。
ApacheCN_飞龙
2023/04/24
15.5K0
python学习第一讲,python简介
python是一个解释型语言. 指的就是将源代码丢个解释器. 解释一行代码,翻译成机器语言给cpu执行. 编译型语言例如C/C++ 直接将源代码翻译成机器语言,交给cpu执行. 特点:
IBinary
2019/05/25
5930
相关推荐
Python基础入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验