要不Python入个门?

前言

随着人工智能的兴起,Python变得越来越火热了,什么少儿编程、机器学习、数据分析、数据挖掘等领域都在不断地分着编程市场的一块大蛋糕,故此就目前的发展趋势,Python必定会是人工智能等新兴数据领域的垫脚石。所以骚年们,不打算学学Python么。

要不Python入个门?

数据来源PYPL

Python简介

干咱们这一行的,多多少少不止了解一种编程语言。回想那些语言,其实可以发现它们其实有着相似相通的地方。所以说呢,Python也不过如此,只要有任何一项编程语言的基础,了解它们并不难,具体我们往后再看。

既然这篇主要是讲Python的入门,咱们就先说说Python。

Python是一个高层次的结合了解释型、编译型、互动型和面向对象的脚本语言。
Python的设计具有很强的可读性,相比其他语言经常使用的英文关键词,其他的语言的一些标点符号,它具有比其他语言更有特色的语法结构。

若要对Python进行一个基础的概括,便可使用以下几点:

  • 解释型:使用过HTML、PHP等语言的同学应该很容易理解该词意思,它没有编译过程,这就造成我们在使用某一对象或者变量的时候,应该在该代码执行至该位置之前就已经完成了该对象或者变量的定义。
  • 交互型:所谓的交互型就是支持用户以程序进行”交互对话”,这种就十分类似于在DOS窗口的命令行交互一般。
  • 面向对象:作为一种脚本语言,与JavaScript一样,支持面向对象的风格,支持代码封装在对象中。
  • 易入门:Python的简单语法对于初学者来说是十分友好的,且由于Python具有强大的第三方库的支持,从简单的脚本开发到web开发再到神经网络训练,这一切都变得简单起来。

正所谓工欲善其事必先利其器,而一般Python开发者常用的开发IDE有:

要不Python入个门?

用啥开发,完全看各位看官老爷们的兴趣所好。

Python2.x与Python3.x的区别:

由于Python2.x到Python3.x是一个大跨度的升级,且并没有考虑向Python2.x兼容的问题,故这两个版本的区别还是挺大的。但又考虑到Python2.x的用户不在少数,在python2.6之后在Python2.x的语法基础上,引入了部分的Python3.x的语法,便于用户向Python3.x版本迁移,具体Python3.x与Python2.x的区别可以详见官网。本文也是基于Python3.x来进行介绍的。

安装

Python环境安装:

windows:

在windows环境中,python的安装就比较简单,甚至比JDK的安装还要简单,就是无脑下一步即可。(值得注意的是,在安装的时候,建议勾选将Python加入到Path环境中,方便之后打开dos可直接运行python)。

Linux:

目前主流的Linux发行版都会默认带有Python的环境,有的同时带有Python2.x和Python3.x,且默认的Python命令用的是Python2.x的环境,有需要的可以将这个Python的软链接进行修改,让其指向Python3.x。

如果不存在Python环境的话,可以通过下载源码包或者软件压缩包的形式进行软件的安装。软件压缩包的形式也较为简单,就不做说明。这里只谈一下源码包的方式进行软件的安装。

  1. 通过wget方式进行下载Python源码包,或者直接从Python官网下载即可(使用wget命令事,请确保已经安装了该软件)
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
  1. tar命令进行文件的解压
tar -zxvf Python-3.8.1.tgz
  1. make进行编译
./configure  --prefix=(自定义python安装位置)
make && make install

第三方库安装:

第三方库的安装用到Python的pip库,它管理着Python的第三方库,一般通过它便可完成第三方库的安装。

pip install pymysql

但是问题就来了,这些第三方库的安装默认都是在国外的镜像中下载,碰到网络一般的时候,那下载起来老费劲了,拿着时候就得考虑使用国内的镜像了,国内一般用的较多的是清华镜像,豆瓣镜像等。

使用清华源安装pymysql
pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple

一劳永逸,设置默认安装源为清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

语法

到现在Python该有的环境,便捷的IDE也介绍完了,就该唠唠基础的语法了。

Python提供六大标准数据类型:

  • Number(数字)
  • String(字符串)
  • Tuple(元组)
  • List(列表)
  • Dictionary(字典)
  • Set(集合)

看到这些是不是有些纳闷为啥没有Int,Long之类的啊,使用 _type(12)_结果明明是int啊。这是因为那些int,long之类的数据类型,全被包含在Number之中,除了整型的int、long之类的还有浮点的double,布尔的bool以及复数complex类型。其中只有部分类型是Python3.x才提供的。

程序控制:

作为一门程序语言,流程控制怎么能少呢,它们的使用基本与其它的语言有着相似之处。

  • 循环控制:python中提供for循环以及while循环两种方式进行循环控制,而for循环的使用与Java中的foreach循环相类似。
for循环
for i in range(8):
    print(i)

while循环
while a:
    # pass关键词表示该代码块为空
    pass

值得注意的是:Python是通过代码缩进量来标识代码块,一般使用四个空格
不推荐直接使用Tab键替代,除非设置Tab键为指定数量的额空格
  • 条件控制:一般使用if判断来实现条件控制(其他的不清楚)。
if a:
    pass
elif b:
    pass
else:
    pass

IO流

IO流笼统概括就是所谓的输入输出。

  • 输入: 标准的输入就是(从控制台)获取键盘输入内容。Python提供Input(),以及raw_input()两个函数提供输入,而这两个的函数的常用的参数为提示输入。 raw_input():从标准输入中获取一行输入。 input():与raw_input() 的功能类似,只不过该函数可以接收一个Python表达式作为输入,并将结果传递返回。 (以上功能只在python2中生效,python3中只提供input() 函数其功能与raw_input()功能一致。)
  • 输出: 主要的是输出分为输出至控制台及输出至文件。 控制台的输出主要使用的是print() 函数,值得注意的是其用法与C类语言的print函数类似,字符串与变量的混合输出需要进行通过format或者位置参数等方式格式化。

文件

通常来说文件也属于IO的一部分吧,但它也有点内容,就单独放一边来说了。

文件打开关闭是通过open()、close()函数进行操作的。 文件常用的打开方式大概分为 r、r+、w、w+、a、a+。 (默认方式为r。后面有加号表示支持写的方式)

  • x:写模式,新建一个文件,如果该文件已存在则会报错。
  • b:二进制模式。
  • +:打开一个文件进行更新(可读可写)。
  • r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
  • rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
  • r+:打开一个文件用于读写。文件指针将会放在文件的开头。
  • rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
  • w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
  • wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
  • w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
  • wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
  • a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
  • ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
  • a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
  • ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

一般来说,为了防止资源的浪费,建议在文件打开使用完后应及时关闭。 为了处理这一问题,建议采用 with open 的方式机型文件的读写, 此方式会自动关闭文件流。 文件的读写: python通过write()函数进行文件的写操作,支持二进制数据的写入。 文件读的方式方式就比较多了,read()、readLine()函数用于文件的读取,前者默认读取单个字符的数据,也可通过参数指定需读取字符个数,而后者是按行进行数据的读取操作。

OS

说了文件的读写、开关,但缺少文件的权限、路径属性的等方式的判断、操作是不能谓之完整的文件操作。与Java不同的是,Python的文件属性类操作并不在单独的File模块,而是存在于OS模块(使用前前请勿忘记模块的导入,模块的导入方式通过import关键词使用,具体用法与vuejs类似)。

该模块对于文件的属性操作常见的有以下:

  • os.isfile(path):判断是否为文件
  • os.isdir(path):判断是否为文件夹
  • os.makedirs(path):创建文件夹(路径不存在会递归创建)
  • os.listdir(path):列出文件夹下的文件
  • os.path:文件属性模块(该模块提供文件的属性操作)

异常Error

在Python中常见的异常类型在Java中也常被提到,像数组越界,内存溢出等异常。不同的是名称比较不同而已。

异常处理作为编程语言中重要的逻辑处理机制之一, 该处理方式与Java的异常处理方式基本类似,提供try…except… finally… 方式进行异常的处理(其用法与Java的try…catch…finally…非常类似,就名字不同而已)。

常见的异常:ZeroDivisionError(除零异常)、IOError(IO异常)、ImportError(模块导入异常)、IndexError(索引不存在,类似于越界)等。

Python标准异常 异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类StopIteration迭代器没有更多的值GeneratorExit生成器(generator)发生异常来通知退出StandardError所有的内建标准异常的基类ArithmeticError所有数值计算错误的基类FloatingPointError浮点计算错误OverflowError数值运算超出最大限制ZeroDivisionError除(或取模)零 (所有数据类型)AssertionError断言语句失败AttributeError对象没有这个属性EOFError没有内建输入,到达EOF 标记EnvironmentError操作系统错误的基类IOError输入/输出操作失败OSError操作系统错误WindowsError系统调用失败ImportError导入模块/对象失败LookupError无效数据查询的基类IndexError序列中没有此索引(index)KeyError映射中没有这个键MemoryError内存溢出错误(对于Python 解释器不是致命的)NameError未声明/初始化对象 (没有属性)UnboundLocalError访问未初始化的本地变量ReferenceError弱引用(Weak reference)试图访问已经垃圾回收了的对象RuntimeError一般的运行时错误NotImplementedError尚未实现的方法SyntaxErrorPython 语法错误IndentationError缩进错误TabErrorTab 和空格混用SystemError一般的解释器系统错误TypeError对类型无效的操作ValueError传入无效的参数UnicodeErrorUnicode 相关的错误UnicodeDecodeErrorUnicode 解码时的错误UnicodeEncodeErrorUnicode 编码时错误UnicodeTranslateErrorUnicode 转换时错误Warning警告的基类DeprecationWarning关于被弃用的特征的警告FutureWarning关于构造将来语义会有改变的警告OverflowWarning旧的关于自动提升为长整型(long)的警告PendingDeprecationWarning关于特性将会被废弃的警告RuntimeWarning可疑的运行时行为(runtime behavior)的警告SyntaxWarning可疑的语法的警告UserWarning用户代码生成的警告

Original: https://blog.csdn.net/sinat_41748858/article/details/121913604
Author: offer、绝缘体
Title: 要不Python入个门?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/700405/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球